Tengo tres pantallas en la pantalla LCD conectadas al microcontrolador 8051 que se desplazan a la pantalla diferente cuando se presiona el botón, pero quiero volver a la pantalla inicial cuando se presiona nuevamente el botón. ¿Cómo puedo hacer eso, gracias?
#include <stdio.h> #include <string.h> #include <stdint.h> void change_screen(void); int count = 0; void change_screen(void) { if (modebutton == 1) { // when button is pressed if (count == 0) { count++; delay(100); display_screen1(); modebutton=0; } else if (count == 1) { count++; delay(100); display_screen2(); modebutton=0; } else if (count == 2) { display_screen3(); count = 0; } } }Puede usar el operador de resto % para esto.
Ejemplo:
void change_screen(void) { static unsigned count = 0; if(modebutton) { delay(100); modebutton = 0; switch(count) { case 0: display_screen1(); break; // first fourth ... case 1: display_screen2(); break; // second fifth case 2: display_screen3(); break; // third sixth } count = (count + 1) % 3; // 0,1,2 then 0,1,2 etc... } }