aprovecho este post para mi pregunta que no se que pasa , se que cuando me den la respuesta me voy a dar decabezazos,pero en fin aqui pongo mi programa:
#FUSES HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=12000000)
#use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7)
#use fixed_io(a_outputs=PIN_A0)
#define led PIN_A0
char dato;
int1 flag;
#int_EXT
interrupcion_isr(){
flag=1;
}
#int_rda
secuencia(){
dato=0x00;
if(kbhit()){
dato=getc();
}
}
enter(){
printf("%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X",0x1E,0x00,0x1C,0xD1,0x00,0x07,0x00,0x01,0x00,0x03,0x00,0x01,0x60,0x00,0x72,0xD7);
}
void main()
{
enable_interrupts(global);
enable_interrupts(int_rda);
enable_interrupts(int_ext);
ext_int_edge(H_TO_L);
// TODO: USER CODE!!
set_tris_a(0xFF);
output_bit(led,0);
while(1){
if (flag==1){
flag=0;
enter();
delay_ms(1);
llamar();
}
if(dato!=0x00){ // Si es distinto de \0 ...
output_bit(led,1);
}
}
}
lo que supone que quiero que haga es que cuando detecte que hay caracteres recibiendo,se encienda el led,pero se queda enganchado (prendido), aun y cuando no le estoy enviando caracteres, con la interrupcion externa no hay problema,funciona muy bien,de hecho no creo tener ningun conflitcto entre las dos,que podria ser?,P.D. ya he intentado con else en el if de dato!=0x00,