Buenas tardes,necesitaria algun tipo de orientacion sobre este código que no puedo hacer que funcione como pretendo.
Cuando envió una A B o E, funciona como espero pero si envió una F, realiza el parpadeo del
led una sola vez.
He puesto alguna bandera, guardar la variable valor en otra, pero no he podido hacer que
si llega una F, se quede en esa opción hasta que reciba otra letra.
Desde ya muchas gracias.
Ruben
aqui adjunto el código
#include <16F1826.h>
#device ADC=16
#FUSES NOWDT //No Watch Dog Timer
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#use delay(internal=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1,bits=8)
#use fast_io(b)
char valor;
#INT_RDA
void RDA_isr(void)
{
valor=getchar();
}
void main()
{
set_tris_b(0b00000010);
setup_adc(ADC_OFF);
setup_adc_ports(NO_ANALOGS);
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);
output_high(pin_b3);
output_high(pin_b4);
while(TRUE)
{
switch(valor)
{
case 'A':
output_high(pin_b3);
break;
case 'B':
output_high(pin_b4);
break;
case 'E':
output_low(pin_b3);
break;
case 'F':
output_low(pin_b4);
delay_ms(100);
output_high(pin_b4);
delay_ms(100);
break;
}//switch
}
}