Autor Tema: COMUNICACION DOS PICS Y SALIDA POR LCD  (Leído 3300 veces)

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

Desconectado MYKEMAX

  • PIC10
  • *
  • Mensajes: 3
COMUNICACION DOS PICS Y SALIDA POR LCD
« en: 09 de Agosto de 2007, 19:50:17 »
Hola que tal muy buen dia, tengo una duda de programacion con respecto a la comunicacion serial entre 2 pics, utilizé SERIN y SEROUT para los pics, y elprograma compila correctamente, pero al simularlo no me aparece en el LCD el valor transmitido.
La configuracion SEROUT queda así:
----------------------------------------------------
INCLUDE "modedefs.bas"

B0 VAR BYTE

SEROUT 0,N2400,[$B0,5]
Donde se manda el numero 5 en decimal (o eso creo).
-----------------------------------------------------------
La canfiguracion SERIN quedó asi:
------------------------------------------------------------
INCLUDE "modedefs.bas"

B0 VAR BYTE

SERIN 1,N2400,["A"],B0

pero no entiendo lo de la "A",  y al tratar de desplegarlo en el LCD no me aparece nada.
-----------------------------------------------------------
No se que estoy haciendo mal; quiero que un valor numerico sea transmitido de un pic al otro y luego se vea en el LCD.
QUE HAGO???? Le pido de la manera mas cordial su ayuda.

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: COMUNICACION DOS PICS Y SALIDA POR LCD
« Respuesta #1 en: 09 de Agosto de 2007, 20:35:28 »
Bien mira tu codigo tiene un pequeño error cuando mandas con serout mandas $B0 y 5  y en el receptor con la ["A"],B0 lo que haces es lo siguiente: con la A le dices que no agarre nada hasta que reciba una A.

Entonces puedes quitar el B0 pon la A y date una vuelta por acá
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado MYKEMAX

  • PIC10
  • *
  • Mensajes: 3
Re: COMUNICACION DOS PICS Y SALIDA POR LCD
« Respuesta #2 en: 09 de Agosto de 2007, 21:11:44 »
Tengo que mandar una "A" por el SEROUT??? Es que no entiendo la respuesta. Ya lo modifiqué pero no funciona, el programa se detiene en cuanto encuentra la instrucción SERIN, si la pongo antes de LCDOUT no me saca nada y si la pongo despues llega hasta ahí y no hace mas.
Que puedo hacer???

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: COMUNICACION DOS PICS Y SALIDA POR LCD
« Respuesta #3 en: 09 de Agosto de 2007, 21:24:06 »
Ya revisaste el LINK que te puse. Por otro lado si pon una A entrecomillada en lugar del B0 en el emisor. o Bien quita la A del receptor. Y otra lee bien la ayuda acerca del comando SERIN y checate el link que deje
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: COMUNICACION DOS PICS Y SALIDA POR LCD
« Respuesta #4 en: 10 de Agosto de 2007, 13:34:52 »
Tengo que mandar una "A" por el SEROUT??? Es que no entiendo la respuesta. Ya lo modifiqué pero no funciona, el programa se detiene en cuanto encuentra la instrucción SERIN, si la pongo antes de LCDOUT no me saca nada y si la pongo despues llega hasta ahí y no hace mas.
Que puedo hacer???

:D ahora que leo mi respuesta tienes razon no es nada clara.

Bueno mira los comandos SEROUT y SERIN sirven para comunicar el PIC serialmente via Software, es decir, incluso los pics sin UART o USART pueden usar este comando. Las desventaja de estas instrucciones es que el programa no puede hacer otra cosa mientras estas se ejecutan. Por ello cuando estas en el serin ahi se queda por que no ha recibido nada y no recibe nada por los siguiente:
 
En el TX con esta linea
Código: OpenOffice.org Basic
  1. SEROUT 0,N2400,[$B0,5]

le dices que mande por el PIN RB0 a 2400 invertido los datos B0 en Hexadecimal y despues el 5

Ahora en el RX con esta linea
Código: OpenOffice.org Basic
  1. SERIN 1,N2400,["A"],B0

Lo que le dices es Recibe por el RB1 a 2400 invertido hasta que te llegue una "A" y lo que venga despues de la "A" guardalo en la variable B0

Entonces como en el TX no mandas la "A" el RX nunca guarda nada en B0 y se queda ahi hasta que encuentre algo. Para que funcione deberas o quitar la parte de ["A"] del RX o bien quitar el $B0 del TX y poner un "A".

Espero sea mas claro esto y te ayude un poco mas.

Saludos


"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado MYKEMAX

  • PIC10
  • *
  • Mensajes: 3
Re: COMUNICACION DOS PICS Y SALIDA POR LCD
« Respuesta #5 en: 13 de Agosto de 2007, 18:30:29 »
Muchas gracias por tu ayuda camarada, lo resolví de la siguiente manera:
--------------------------------------------------------------------------------------
SEROUT

INCLUDE "modedefs.bas"
TRISB = 0

TRANS VAR WORD
TRANS = 255
PAUSE 100
SEROUT PORTB.0,N9600,[TRANS]
PAUSE 100
--------------------------------------------------------------------------------------
SERIN

INCLUDE "modedefs.bas"

TRISD = %11111111
TRISB = %11111111

TRANS VAR WORD


DEFINE LCD_DREG PORTD      ' Set LCD Data port
DEFINE LCD_DBIT 4          ' Set starting Data bit (0 or 4) if 4-bit bus
DEFINE LCD_RSREG PORTD     ' Set LCD Register Select port
DEFINE LCD_RSBIT 0         ' Set LCD Register Select bit       (RS)
DEFINE LCD_EREG PORTD      ' Set LCD Enable port
DEFINE LCD_EBIT 1          ' Set LCD Enable bit                (E)
DEFINE LCD_BITS 4          ' Set LCD bus size (4 or 8 bits)
DEFINE LCD_LINES 2         ' Set number of lines on LCD
DEFINE LCD_COMMANDUS 2000  ' Set command delay time in us
DEFINE LCD_DATAUS 50       ' Set data delay time in us



 Lcdout $fe, 1   ' Clear LCD screen
        Lcdout "YA JUNCIONA: "
        PAUSE 100
        SERIN PORTB.1,N9600,TRANS
        PAUSE 100
        LCDOUT dec TRANS
       
   END   
-------------------------------------------------------------------------------------
Donde en SERIN se despliega el valor recibido en un LCD.

Ahora, tengo otra pregunta después de haber resolvido este problema, no puedo enviar valores mas grandes que 255, si envio un valor mas grande de 256 me envia datos ilógicos. Esto es por que solo acepta 1bit de transmisión. Pero que quiero transmitir numeros mas grandes que ese valor.

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: COMUNICACION DOS PICS Y SALIDA POR LCD
« Respuesta #6 en: 13 de Agosto de 2007, 19:55:27 »
Puedes partir el valor en 2 o si va a ser de tipo word manda el byte mas alto y luego el bajo o viceversa y despues los juntas. Existen las sentencias para eso en estos momentos no recuerdo como son exactamente creo que era highbyte y lowbyte busca en la ayuda y tal vez te sirva.

Saludos
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: COMUNICACION DOS PICS Y SALIDA POR LCD
« Respuesta #7 en: 15 de Agosto de 2007, 03:44:15 »
lo_que_sea  VAR WORD


lo_que_sea.0 es igual a lo_que_sea.lowbyte

lo_que_sea.1
es igual a lo_que sea.highbyte
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee