¿por qué cuando enciendo otro interruptor el contenido no cambia?
Hay un problema con el uso de dipsw y lcd en el microcontrolador atmega16. El problema no es cambiar el contenido de lcd cuando enciendo otro interruptor.
Compilé mis códigos utilizando AVR codevision. y mis códigos son:
a = PINB;
switch(a){
case 1:
lcd_clear();
lcd_putsf("Switch 1");
break;
case 2:
lcd_clear();
lcd_putsf("Switch 2");
break;
case 4:
lcd_clear();
lcd_putsf("Switch 3");
break;
case 8:
lcd_clear();
lcd_putsf("Switch 4");
break;
case 16:
lcd_clear();
lcd_putsf("Switch 5");
break;
case 32:
lcd_clear();
lcd_putsf("Switch 6");
break;
case 64:
lcd_clear();
lcd_putsf("Switch 7");
break;
case 128:
lcd_clear();
lcd_putsf("Switch 8");
break;
default:
lcd_clear();
}
y lo hice en proteus:
cuando enciendo uno de los interruptores funciona bien, pero cuando lo apago, continúa mostrando el contenido y no lo borra, y luego cuando enciendo otro interruptor, el lcd no muestra nada.