He estado tratando de hacer lo siguiente: Cuando un interruptor de palanca se gira hacia abajo, la imagen que estoy usando (16F1503) envía un pulso y enciende un led, cuando se levanta, envía el mismo pulso y apaga el led. Me las arreglé para improvisar un código y funciona muy bien. El problema es que necesito administrar otro interruptor que hace exactamente lo mismo, pero envía un pulso a un puerto diferente y enciende / apaga un led diferente. ¿Cualquier sugerencia? Estoy teniendo problemas, principalmente al deshacer múltiples interruptores.
Aquí está el código que estoy usando:
void main()
{
uint8_t db_cnt;
PORTA=0;
PORTC=0;
ADCON0=0;
TRISA=0b001000;
TRISC=0b010000;
for(;;)
{
//Wait for button press, debounce by counting:
for (db_cnt=0; db_cnt <= 10; db_cnt++)
{
__delay_ms(1); //Sample every 1ms
if (TOGGLELEFT==0) //If toggle off (RA3 low)
db_cnt=0; //Restart count
} //Until button on for 10 successive reads
PORTA=0b100000; //Turn OFF toggle LED, turn ON transistor
__delay_ms(10);
PORTA=0b000000; //Turn OFF transistor
//Wait for button release, debounce by counting:
for (db_cnt=0; db_cnt <=10; db_cnt++)
{
__delay_ms(1); //Sample every 1ms
if (TOGGLELEFT==1) //If toggle on (RA3 high)
db_cnt=0; //Restart count
} //Until button off for 10 successive reads
PORTA=0b110000; //Turn ON toggle LED and transistor
__delay_ms(10);
PORTA=0b010000; //Turn OFF transistor
}
}