Autor Tema: Recepción serial de texto variable  (Leído 2527 veces)

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

Desconectado diegodiego

  • PIC10
  • *
  • Mensajes: 3
Recepción serial de texto variable
« en: 23 de Agosto de 2010, 14:27:13 »
Saludos cordiales

Estoy realizando una aplicación de pasa mensajes. El texto se envía desde el PC o un PIC. El programa funciona bien, pero quisiera modificarlo para que no tenga que esperar los 16 caracteres del transmisor. Es decir,

Uso este comando:

SerIn2 portb.0,49548,100,i2,[wait(" "),str mensaje\16]'N2400 es 16780

Espera un espacio " " para iniciar el conteo  y recepción de los datos.

Un saludo.

Desconectado Palomino86

  • PIC16
  • ***
  • Mensajes: 180
Re: Recepción serial de texto variable
« Respuesta #1 en: 23 de Agosto de 2010, 16:34:19 »
Que tal?


Que es lo que quisieras que leyera? o explica un poco mas a detalle lo que gustas hacer con el programa para ver si te puedo ayudar.

Saludos
Lo que no me destruye, me fortalece

Desconectado diegodiego

  • PIC10
  • *
  • Mensajes: 3
Re: Recepción serial de texto variable
« Respuesta #2 en: 23 de Agosto de 2010, 19:00:23 »
Hola, gracias por responder.

Estoy enviando un texto desde el PC que contiene 16 caracteres, por ejemplo:

" 1234567890123456"

La recibo en el pic con esta sentencia:

SerIn2 portb.0,49548,100,i2,[wait(" "),str mensaje\16]'N2400 es 16780

Es de longitud 16 ya que en la función SERIN2 espera el mensaje de esa longitud.

Ahora, quisiera que si envío, por ejemplo:

"12356"

Reciba esos datos y pase a la siguiente instrucción. Es decir, si la longitud es variable (por ejemplo cadenas de 5,8 ó 15 caracteres) empiece a imprimir los datos recibidos.

Un saludo.


Desconectado Palomino86

  • PIC16
  • ***
  • Mensajes: 180
Re: Recepción serial de texto variable
« Respuesta #3 en: 23 de Agosto de 2010, 19:36:47 »
Ya intentaste tener una longitud fija?

por decir así:

n=30

SerIn2 portb.0,49548,100,i2,[wait(" "),str mensaje\n]'N2400 es 16780

y ver que pasa? con eso digo hacer la prueba de que apesar de que tengas una determinada longitud máxima te escriba una menor. Lo has intentado?
Lo que no me destruye, me fortalece

Desconectado Palomino86

  • PIC16
  • ***
  • Mensajes: 180
Re: Recepción serial de texto variable
« Respuesta #4 en: 23 de Agosto de 2010, 20:05:12 »
Ya lo intente en Proteus y si me funciono, te dejo aquí como ejemplo de que manera lo hice. Saludos

'****************************************************************
'*  Name    : CADENA.BAS                                                                        *
'*  Author  : Ing. Jorge Luis Gutiérrez Palomino                                           *
'*  Notice  : Copyright (c) 2010                                                                  *
'*          : All Rights Reserved                                                                    *
'*  Date    : 19/01/2010                                                                             *
'*  Version : 1.0                                                                                        *
'*  Notes   :                                                                                              *
'*          :                                                                                                 *
'****************************************************************
define OSC 20
Include "MODEDEFS.BAS"

'Display Serie               
N9600 CON 16468               'Configuración de 9600 Baudios para display serie en Físico
S9600 CON 84                  'Configuración de 9600 Baudios para display serie en Proteus

DIS_SEROUT     VAR PORTD.0    'Pin para el Display Serie
DIS_SERIN      VAR PORTC.7    'Pin para la entrada de información de manera serial
TX             VAR PORTC.6
HOMELCD         con 0          'Inicio de cursor   
CLRLCD         con 1         'Borrar la pantalla
POSCMD         con 128        'Posicion del cursor
NOCURSOR      CON 12         'Cursor Invisible
CURSOR         CON 13         'Muestra cursor
CMD            con 254        'Modo comando

CADENA var byte
TRISC = %10000000
TRISD = %00000000

n var byte
n=30

RECEPCION:
        serin2 DIS_SERin,S9600,500,sigue,[wait(" "),str cadena\n]           'Recibe la información de la PC
 
sigue:       
        serout2 tx,S9600,[str cadena\n]
        goto RECEPCION
 
END
Lo que no me destruye, me fortalece

Desconectado Palomino86

  • PIC16
  • ***
  • Mensajes: 180
Re: Recepción serial de texto variable
« Respuesta #5 en: 23 de Agosto de 2010, 20:06:21 »
Te dejo la otra imagen
Lo que no me destruye, me fortalece

Desconectado diegodiego

  • PIC10
  • *
  • Mensajes: 3
Re: Recepción serial de texto variable
« Respuesta #6 en: 23 de Agosto de 2010, 20:44:19 »
Hola

Por favor envíame la simulación a este mail: diegokillemall [at] yahoo.com

Un saludo.
« Última modificación: 23 de Agosto de 2010, 21:07:30 por diegodiego »

Desconectado Palomino86

  • PIC16
  • ***
  • Mensajes: 180
Re: Recepción serial de texto variable
« Respuesta #7 en: 23 de Agosto de 2010, 21:33:56 »
Aqui te dejo la simulación

Saludos
Lo que no me destruye, me fortalece