TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: amaia.13 en 06 de Marzo de 2012, 16:20:31

Título: Interrupción #INT_RDA y #INT_EXT RB0
Publicado por: amaia.13 en 06 de Marzo de 2012, 16:20:31
Hola,

Tengo un problema. Utilizo el PIC16F886 y dos interrupciones, la de puerto serie y la externa en RB0. Por separado me funcionan bien, pero juntas la interrupción serie se me queda colgada, utilizo un gets para recoger los datos que le mando desde Visual Basic, sin embargo, al utilizar un getc me funcionan correctamente pero sólo me recoge un dato(que es lo que hace realmente el getc) y yo lo que quiero recoger es una cadena de 10 caracteres. Gracias.
Título: Re: Interrupción #INT_RDA y #INT_EXT RB0
Publicado por: Diego E. en 06 de Marzo de 2012, 17:41:05
Hola amigo, lo que sucede es que la función Gets amarra el micro hasta recibir el caracter Ch13, en cambio la función Getc recibe caracter por caracter y no retiene, yo lo que hago es ir contando los caracteres recibidos y los voy almacenando en una matriz

dato_recibido[con_recibir] = getc();
con_recibir++;

Saludos.
Título: Re: Interrupción #INT_RDA y #INT_EXT RB0
Publicado por: NoSepComo en 07 de Marzo de 2012, 04:54:10
Bueno yo también te he contestado en el otro hilo igual que has abierto jeje. Lo mismo que te ha dicho diego mas o menos, pero añade el kbhit() para evitar errores en la recepción.