Autor Tema: Control de Paridad para TX SERIAL  (Leído 2937 veces)

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

Desconectado Ivitavi

  • PIC10
  • *
  • Mensajes: 40
Control de Paridad para TX SERIAL
« en: 29 de Julio de 2004, 10:53:00 »
Hola a todos, les pido su ayuda porq necesito establecer una comunicación serial a 9 bits, y paridad impar, el problema es que no se si existe algun registro de estado en el Pic 18f252, que me permita saber mediante un flag si un byte determinado es par o impar, si alguien tiene información sobre esto, por lo q he leido hasta el momento no hay nada sobre paridad en el manual de este PIC........y si no alguien tiene una idea de como realizar una rutina para determinar la paridad de un byte??
Gracias de antema¡no......
Ivita

Desconectado T0ni0

  • PIC16
  • ***
  • Mensajes: 196
RE: Control de Paridad para TX SERIAL
« Respuesta #1 en: 29 de Julio de 2004, 11:21:00 »
Hola Ivitavi

En Todos ( todos los conocidos por mi) que disponen de una USART existe la posibilidad de enviar y recivir un bit de paridad, dicho bit también se puede utilizar si estas enviando direcciones, este es el caso del PIC que comentas ( contrastado con el Data sheet) bueno a lo que nos interesa

Para recibir el bit de paridad, en el registro RCSTA hay el bit RX9 (6) tienes que activarlo, luego cuando leas tienes que leer el bit RX9D ese es el bit de paridad, tu tienes que preocuparte de comprobar que sea correcto.


Para la transmisión es lo mismo pero con el registro TXSTA, ah y tienes que generar tu la paridad para TX9D.


espero haber ayudado
- T0ni0 -
30RCF112

Desconectado Ivitavi

  • PIC10
  • *
  • Mensajes: 40
RE: Control de Paridad para TX SERIAL
« Respuesta #2 en: 29 de Julio de 2004, 11:28:00 »
Gracias T0ni0, eso de la tx y rx a 9 bits si lo tengo, el problema justamente es sobre generar la paridad del byte a transmitir; mi pregunta es respecto a lo ultimo q mecionas, como genero la paridad de un byte para transmitirlo???, no se si tienen algun ejemplo por ahi q me pueda facilitar la vida?.......

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
RE: Control de Paridad para TX SERIAL
« Respuesta #3 en: 29 de Julio de 2004, 13:06:00 »
Si especificas en que lenguaje estas trabajando habrá mas posibilidad de que alguien te eche una mano,aunque,en mi opinión,ese tipo de cosas es cuestión de ponerse a ello y verás como lo terminas sacando.
Un saludo

Desconectado Ivitavi

  • PIC10
  • *
  • Mensajes: 40
RE: Control de Paridad para TX SERIAL
« Respuesta #4 en: 29 de Julio de 2004, 17:53:00 »
Bueno el programa lo estoy desarrollando en C, el compilador q uso es el C18 de Microchip, pero no entiendo la librería q tiene para transmisión a 9 bits, asi si alguien tiene alguna librería o programita q genere la paridad para este tipo de transmisión ...me sirve en lenguaje C o también en ensamblador, ....gracias.....

Desconectado RGL

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 634
RE: Control de Paridad para TX SERIAL
« Respuesta #5 en: 29 de Julio de 2004, 18:46:00 »
Normalmente este cálculo se hace con la XOR de los bits qu forman el byte.

Saludos
Ricky
Madrid-España

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
RE: Control de Paridad para TX SERIAL
« Respuesta #6 en: 30 de Julio de 2004, 11:39:00 »
Me encontré con este ejemplito en el manual del CCS.
Creo que es lo que estás buscando
Codigo:

int paridad (int dato) {
int contador;
#asm
movlw 8
movwf contador
movlw 0
lazo:
xorwf dato,w
rrf dato,f
decfsz contador,f
goto lazo
movwf _return_
#endasm
}