uwew Posted October 11, 2020 at 06:37 PM Posted October 11, 2020 at 06:37 PM Derzeit versuche ich eine Benutzerführung zur Steuerung von 2 Peristaltikpumpen (Schrittmotoren) auf einem LCD128x64 in C zu programmieren. Dazu verwende ich sechs Pushbuttons. Dabei hänge ich im Moment an folgendem Problem fest: Mit folgendem Callback registriere ich das Drücken eines buttons: lcd_128x64_register_callback(&lcd01, LCD_128X64_CALLBACK_GUI_BUTTON_PRESSED, (void (*)(void))cb_button01_pressed, NULL); Die Funktion cb_button01_pressed hat nur folgenden Inhalt: void cb_button01_pressed(void *user_data) { printf("Hello Button01\n"); } Mein Problem: Wie stelle ich fest, welcher der sechs Pushbuttons gedrückt wurde und wie übergebe ich diese Information an die Funktion "cb_button01_pressed()" damit ich jeweils unterschiedliche Funktionen ausführen kann? Herzlichen Dank für eure Hilfe Quote
bernhard.graeuler Posted October 12, 2020 at 06:29 AM Posted October 12, 2020 at 06:29 AM Hi, schau Dir mal das C/C++ GUI Beispiel an, die Callback Funktion für LCD_128X64_CALLBACK_GUI_BUTTON_PRESSED wird in der Doku bei den Callbacks beschrieben. Wenn Du cb_button01_pressed wie folgt deklarierst: void cb_button01_pressed(uint8_t index, bool pressed, void *user_data) { printf("Hello Button01\n"); } Müsstest Du den Button über den Parameter index auslesen können. Quote
uwew Posted October 12, 2020 at 09:47 AM Author Posted October 12, 2020 at 09:47 AM Hi Bernhard. Vielen Dank für den Tip. So funktioniert es! Gruss Uwe Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.