TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: jfh900 en 17 de Abril de 2011, 00:15:50
-
Necesito hacer con CCS una comunicación RS232 con los siguientes parámetros:
Velocidad= 9600 Bits = 9 Paridad = Impar Bits_Stop = 1
Lo realizo con:
#use rs232(baud=9600 ,xmit=PIN_C6,rcv=PIN_C7,stop=1,bits=9,parity=O)
Y me da el error de longitud de bits no permitida.
Alguna idea de como configurarlo para que funcione.
Un saludo
-
Hola jfh900, según entiento los bits totales son la suma de los bits mas el bit de paridad si lo hay. Por ejemplo:
Bits = 8 Paridad = N total bits = 8
Bits = 8 Paridad = E total bits = 9
Bits = 8 Paridad = O total bits = 9
Como parece que tu caso es este último entonces sería:
#use rs232(baud=9600 ,xmit=PIN_C6,rcv=PIN_C7,stop=1,bits=8,parity=O)
Saludos!
-
Hola jfh900, según entiento los bits totales son la suma de los bits mas el bit de paridad si lo hay. Por ejemplo:
Bits = 8 Paridad = N total bits = 8
Bits = 8 Paridad = E total bits = 9
Bits = 8 Paridad = O total bits = 9
Como parece que tu caso es este último entonces sería:
#use rs232(baud=9600 ,xmit=PIN_C6,rcv=PIN_C7,stop=1,bits=8,parity=O)
Saludos!
Todo es correcto a excepción de el número de bits que es 9:
#use rs232(baud=9600 ,xmit=PIN_C6,rcv=PIN_C7,stop=1,bits=9,parity=O)
Justamente cuando lo configuro así, me da el error:
USE parameter value is out of range. Too many bits.
¿Tendré que configurarlo manualmente el registro, en vez del con el #USE? o es que ¿el pic18F2550 no soporta el manejo de 9 bits?
Un saludo
-
... Todo es correcto a excepción de el número de bits que es 9:
#use rs232(baud=9600 ,xmit=PIN_C6,rcv=PIN_C7,stop=1,bits=9,parity=O)
Justamente a eso me refiero; cuando lo configuras asi, le estás diciendo que son 10 bits! De ahí el mensaje de error: Too many bits. Si pones bits=8 y le sumas el bit de paridad parity=O, en total serían 9 bits.
Saludos!
-
... Todo es correcto a excepción de el número de bits que es 9:
#use rs232(baud=9600 ,xmit=PIN_C6,rcv=PIN_C7,stop=1,bits=9,parity=O)
Justamente a eso me refiero; cuando lo configuras asi, le estás diciendo que son 10 bits! De ahí el mensaje de error: Too many bits. Si pones bits=8 y le sumas el bit de paridad parity=O, en total serían 9 bits.
Saludos!
Precisamente la trama tiene 9 bits de datos (no 8) de ahí el problema. Ya se que no es usual, pero es que precisamente el sistema que intento conectar tiene estas especificaciones y no se si programando directamente los registros de comunicación RS232 del PIC conseguiría establecer la comunicación.
Un saludo
-
Hola, estuve mirando la hoja de datos de un PIC 18F. Por supuesto puedes hacer la programación directa declarando y seteando los registros correspondientes, pero también veo que allí explican lo mismo que te había comentado. Si la comunicación es de 9 bits y quieres usar el bit de paridad, este será uno de esos 9 bits y no otro bit adicional.
Saludos!
-
Exactamente, o tiene 9 bits sin paridad o tiene 8 con paridad, sino tienes que hacer las rutinas propias para recibir y enviar los datos.
Saludos!
-
Hay que repasar los libros de sistemas digitales.
Muchas cosas se olvidan con el tiempo.