Buenos días
Tengo una pregunta: estoy trabajando con un PIC16F1936 al cual le configuro dos puertos de transmisión y recepción serial así:
#use RS232 (BAUD=9600, XMIT=PIN_C6, RCV=PIN_C7, bits=8, PARITY=N, stream=USB, errors)
#use RS232 (BAUD=9600, RCV=PIN_A1, RCV=PIN_A0, bits=8, PARITY=N, stream=master, errors)
En el main de mi programa estoy configurando la interrupción por recepción serial:
void main(){
// Initial configuration
...
enable_interrupts(global);
enable_interrupts(int_rda);
...
// Loop
while(true){
RESTART_WDT();
// Serial reception
if(flag_recep==1){
RESTART_WDT();
flag_recep=0;
br = 0;
// CODE
}
}
}
Y finalmente la interrupción serial:
// --------------- Serial Interrupt ---------------
#int_RDA
void RDA_isr(void){
RESTART_WDT();
temp[br] = getc();
br++;
if(br==1){
//else{br = 0;}
}
if(br == 2){lenght = temp[1]+3;}
if(br == lenght){
br = 0;
flag_recep = 1;
lenght = 0;
}
}
He utilizado esta configuración con un PIC16F1827 con un único puerto serial y todo funciona correctamente. Mi inquietud es qué sucede con la interrupción serial si hay más de un puerto serial configurado en el microcontrolador. ...