TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: hqv en 26 de Junio de 2004, 16:56:00
-
hola amigo tengo el siguiente problema:
tengo deshabilitada la intrrupcion RDA, pero me llegan datos que no necesito, cuando activo la interrupcion para obtener los dstos necesario , esta se activa pero con los datos que quedaron en el buffer, los que no necesito.
lo que quiero es saber como limpiar los datos que llegn para que ellos no me hagan saltar la interrupcion
gracias
-
Hola.. pues no te entiendo muy bien, pero yo hago esto..
BYTE buffer[BUFFER_SIZE];
BYTE next_in = 0;
BYTE next_out = 0;
#int_RDA
void serial_isr() {
int t;
buffer[next_in]=getc(); t=next_in;
next_in=(next_in+1) % BUFFER_SIZE;
if(next_in==next_out)
next_in=t;
}
#define bkbhit (next_in!=next_out)
BYTE bgetc() {
BYTE c;
while(!bkbhit) ;
c=buffer[next_out];
next_out=(next_out+1) % BUFFER_SIZE;
return(c);
}
// esto lo saque de los ejemplos del CCS
// Ahora si necesitas leer los datos pues es muy simple
// llamas la funcion bgetc();
// y por medio de un if comparas los datos y
// discriminas solo los que necesitas
Es solo una opinion..!!