Podes reemplazar:Pero el led nunca se va apagar, revisa tu código.Código: C
while (boton _on) ; while (boton_off) ;
Por:Código: C
while (boton _on || boton_off) ;
Pero no la compliquemos y la hagamos bloqueante.. simplifiquemos mas siguiendo tu metodo:Código: C
while(1) { if(boton_off ^ boton_on) salida_led=boton_on; }
Suponiendo que no cambie el estado del boton luego de pasar el IF, al if pasa con 2 opciones, uno tienen que ser 0 y el otro 1. O sea 01 y 10, Y justamente tiene el estado correcto del boton_on, asi que no es necesario poner boton_off. Pero para estar bien seguros nunca deberia suceder lo de la "posibilidad" que cambie el estado mientras pasa, asi que deberia usarse una variable para cargar boton_off y boton_on y usar esta.Código: C
while(1) { char a = boton_off ^ boton_on; if(a) salida_led=a; }