Autor Tema: Duda RS232  (Leído 3500 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado aitorsp

  • PIC18
  • ****
  • Mensajes: 296
Re: Duda RS232
« Respuesta #15 en: 01 de Marzo de 2010, 10:43:51 »
Perdón, perdón, perdón. Creía que te referías al primer c=0x00; no al segundo. efectivamente el segundo hay que moverlo debajo de donde se usa para calcular el valor de aux.  :oops:

Y MLO tiene razón, yo también "levanto" un flag en la interrupción que es el que detecto en el main() y no uso directamente la variable de recogida del dato.

Hola:

Como quedaria mi codigo con la opción del flag?.

un saludo y gracias

aitor


Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Duda RS232
« Respuesta #16 en: 01 de Marzo de 2010, 10:56:13 »
Hola.

En la rutina de interrupcion, pones el flag a 1

Código: C#
  1. #int_RDA
  2. void Serial_isr(void)
  3. {
  4.  c=0;
  5.  c=getc();
  6.  FlagUSART=1;
  7. }

Y en el main cambias el if

Código: C#
  1. ...
  2. if(FlagUSART)
  3. {
  4.  FlagUSART=0;
  5.  .....
  6. }
  7. ...

Que tal amigos!
Aprovecho este enlace para hacerles una consulta  :mrgreen:
Tengo un pic16f876A @ 8Mhz
Y estoy empleando dos interrupciones una por el timer0 cada 5ms y otra por recepcion serial (int_rda) @ 9600bps, ahora bien el problema que presento, es con la interrupcion por recepcion, ya que no recibe el caracter que le envio (solo un caracter a la vez) :5]
Estoy empleando los pines por hardware del pic para recepcion.

Alguna idea de que podra ser?

Gracias

Creo que la USART no va bien en CCS con algunos valores de cristales. Has probado con 4, 12 o 20MHz?

Saludos.
El papel lo aguanta todo

Desconectado RALF2

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2060
Re: Duda RS232
« Respuesta #17 en: 01 de Marzo de 2010, 15:03:03 »
Ok apenas tenga chance coloco el codigo!

Saludos
« Última modificación: 01 de Marzo de 2010, 15:18:30 por RALF2 »