Autor Tema: Limpiar Buffer de modulo EUSART en C18  (Leído 2819 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Palomino86

  • PIC16
  • ***
  • Mensajes: 180
Limpiar Buffer de modulo EUSART en C18
« en: 25 de Mayo de 2011, 13:41:24 »
Hola foro;

Tengo una duda.... Es posible limpiar el buffer del modulo EUSART :?? Estoy utilizando un PIC18F4553.

En caso de ser posible, con que registro ó instrucción se realiza? Ya que le estado buscando y no he dado con el clavo.

Saludos
Lo que no me destruye, me fortalece

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Limpiar Buffer de modulo EUSART en C18
« Respuesta #1 en: 25 de Mayo de 2011, 13:49:10 »
Con readUSART() o data = RCREG;



Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Limpiar Buffer de modulo EUSART en C18
« Respuesta #2 en: 25 de Mayo de 2011, 14:45:30 »
Hola foro;

Tengo una duda.... Es posible limpiar el buffer del modulo EUSART :?? Estoy utilizando un PIC18F4553.

En caso de ser posible, con que registro ó instrucción se realiza? Ya que le estado buscando y no he dado con el clavo.

Saludos

¿El Buffer de Salida o de Entrada?

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Limpiar Buffer de modulo EUSART en C18
« Respuesta #3 en: 25 de Mayo de 2011, 15:07:42 »
Si es el de recepción y ya ha ocurrido un overflow, debes resetear la recepción trabajando sobre el bti CREN.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Palomino86

  • PIC16
  • ***
  • Mensajes: 180
Re: Limpiar Buffer de modulo EUSART en C18
« Respuesta #4 en: 25 de Mayo de 2011, 15:34:47 »
Es en la repeción, estoy trabajandola con interrupción y por seguridad quiero limpiar el buffer una vez que la cadena se haya completado.

Para esto me imagino que debe de bastar con poner lo siguiente:

RCREG=0;                   // Para el caso de la recepción
TXREG=0;                   // Para el caso de la transmision


o hay algo mas que deba considerar?

Saludos y gracias por las prontas respuestas :)
Lo que no me destruye, me fortalece

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Limpiar Buffer de modulo EUSART en C18
« Respuesta #5 en: 25 de Mayo de 2011, 16:02:45 »
Para enviar no deberías escribir nada, ahora para recibir debes leer el buffer, no escribir.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Limpiar Buffer de modulo EUSART en C18
« Respuesta #6 en: 25 de Mayo de 2011, 16:03:09 »
Es en la repeción, estoy trabajandola con interrupción y por seguridad quiero limpiar el buffer una vez que la cadena se haya completado.

Para esto me imagino que debe de bastar con poner lo siguiente:

RCREG=0;                   // Para el caso de la recepción
TXREG=0;                   // Para el caso de la transmision


o hay algo mas que deba considerar?

Saludos y gracias por las prontas respuestas :)

El RCREG es solo lectura, con hacerlo 0 no lo limpias.  Para limpiarlo (y su correspondiente flag) debes leerlo como te indicó suky.

El de transmisión, si lo pones en 0 y tienes la usart habilitada, estas transmitiendo un hermoso 0 por el pin TX  :mrgreen: así que cuidado con eso.

La pregunta de como limpiar el buffer de salida es porque creo recordar en los micros con EUSART había un par de cositas a tener en cuenta para evitar que se envie el primer byte erroneo.  Como en mis aplicaciones las transmisiones son constantes y con chequeo de error en ambos extremos no me preocupa si el primer byte sale o no al encender el pic, pero si esa es tu pregunta se puede ahondar en el tema.  No obstante si lo que queres es asegurarte de no tener "basura" cuando estas procesando el mensaje podes o bien leer todo el buffer varias veces (tiene hasta 3 bytes de capacidad) o bien apagar la usart de recepción y la de transmisión  mientras haces lo que queires hacer con esa información
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)


 

anything