TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: diegodiego 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.
-
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
-
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.
-
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?
-
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
-
Te dejo la otra imagen
-
Hola
Por favor envíame la simulación a este mail: diegokillemall [at] yahoo.com
Un saludo.
-
Aqui te dejo la simulación
Saludos