Autor Tema: ¿Cómo salida serie a 9600 8E1 en el 16F876?  (Leído 3323 veces)

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

Desconectado binartu

  • PIC10
  • *
  • Mensajes: 5
¿Cómo salida serie a 9600 8E1 en el 16F876?
« 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

Desconectado septiembre_negro

  • PIC18
  • ****
  • Mensajes: 310
Re: ¿Cómo salida serie a 9600 8E1 en el 16F876?
« Respuesta #1 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



Desconectado binartu

  • PIC10
  • *
  • Mensajes: 5
Re: ¿Cómo salida serie a 9600 8E1 en el 16F876?
« Respuesta #2 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.

Desconectado jansuini

  • Moderador Local
  • PIC24F
  • *****
  • Mensajes: 566
Re: ¿Cómo salida serie a 9600 8E1 en el 16F876?
« Respuesta #3 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

Desconectado binartu

  • PIC10
  • *
  • Mensajes: 5
Re: ¿Cómo salida serie a 9600 8E1 en el 16F876?
« Respuesta #4 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.


 

anything