TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: binartu en 14 de Febrero de 2010, 09:06:33

Título: ¿Cómo salida serie a 9600 8E1 en el 16F876?
Publicado por: binartu en 14 de Febrero de 2010, 09:06:33
Estoy intentando comunicar el pic con un módem que en principio están a 9600 8E1 pero no lo consigo.
Este sólo es un prototipo para un proyecto personal, por lo que podría cambiar la configuración del módem y habría resuelto el asunto de la comunicación del PIC con éste, pero me gustaría saber si es posible hacerlo y cómo, ya que he mirado el manual y supongo que lo interpretaré mal ya que no me funciona.
este es el código de prueba que tengo:
Código: [Seleccionar]
INCLUDE "modedefs.bas"
Define osc 4
TRISA = 255
TRISB = 0
portb = 0

define HSER_BITS 9
define HSER_EVEN 1
DEFINE HSER_BAUD 9600 
DEFINE HSER_RCSTA 90h             ; Habilitamos la recepción del puerto serie
DEFINE HSER_TXSTA 20h             ; Habilitamos la transmisión del puerto serie


:mensaje
pause 500
HSEROUT ["test"]
pause 50
high portb.5
pause 100
low portb.5
goto   mensaje
¿Alguna sugerencia? Así me funciona a 7E1
Título: Re: ¿Cómo salida serie a 9600 8E1 en el 16F876?
Publicado por: septiembre_negro en 14 de Febrero de 2010, 20:20:39
Estoy intentando comunicar el pic con un módem que en principio están a 9600 8E1 pero no lo consigo.
Este sólo es un prototipo para un proyecto personal, por lo que podría cambiar la configuración del módem y habría resuelto el asunto de la comunicación del PIC con éste, pero me gustaría saber si es posible hacerlo y cómo, ya que he mirado el manual y supongo que lo interpretaré mal ya que no me funciona.
este es el código de prueba que tengo:
Código: [Seleccionar]
INCLUDE "modedefs.bas"
Define osc 4
TRISA = 255
TRISB = 0
portb = 0

define HSER_BITS 9
define HSER_EVEN 1
DEFINE HSER_BAUD 9600 
DEFINE HSER_RCSTA 90h             ; Habilitamos la recepción del puerto serie
DEFINE HSER_TXSTA 20h             ; Habilitamos la transmisión del puerto serie


:mensaje
pause 500
HSEROUT ["test"]
pause 50
high portb.5
pause 100
low portb.5
goto   mensaje
¿Alguna sugerencia? Así me funciona a 7E1





Checa el manual estos son los parámetros que requieres modificar para configurar tu comunicación


define HSER_BITS 9  ' numero de bits
define HSER_EVEN 1  'paridad
DEFINE HSER_BAUD 9600 'velocidad


Título: Re: ¿Cómo salida serie a 9600 8E1 en el 16F876?
Publicado por: binartu en 15 de Febrero de 2010, 03:21:31
Pues ya digo, que después de mirar el manual, saqué el código de arriba, pero no me va, sigue transmitiendo a 7E1 en lugar de 8E1.
He probado también a cambiar DEFINE HSER_TXSTA 20h por 60h y se supone que debería estar en 8E1 también, ¿no? pero no. Ha cambiado algo (a 7E1 no va) pero no sé a qué velocidad...
Seguiré probando.
Título: Re: ¿Cómo salida serie a 9600 8E1 en el 16F876?
Publicado por: jansuini en 15 de Febrero de 2010, 18:43:15
Hola:
Ahora no encuentro en el manual los DEFINE ,pero tengo alguna duda sobre el tema ,lo que si he probado yo es la instrucción SEROUT2 a 9600 8 datos con paridad even
la innstruccion es:
baud    con 8276 ;9600 ,par
pin portc.0
SEROUT2 pin,baud ,[ "Hola"]

Espero te sirva
Jorge
Título: Re: ¿Cómo salida serie a 9600 8E1 en el 16F876?
Publicado por: binartu en 21 de Febrero de 2010, 05:59:06
Aún no sé si me servirá, pero voy a probarlo a ver que tal.
Ya os contaré, gracias.