TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: egds en 25 de Septiembre de 2004, 14:38:00

Título: Array de caracteres con serin2, no me funciona!
Publicado por: egds en 25 de Septiembre de 2004, 14:38:00
Hola amigos,

A ver si alguien me puede echar una mano porque me sale humo por las orejas. Resulta que quiero enviar una serie de caracteres por el puerto serie, en concreto es un array. Si recibo ese array y es correcto entonces iré a una etiqueta. El código es el siguiente:
***********************************
include "bs2defs.bas"    
   
define OSC 20                  "establecemos el reloj a 20Mhz
define LOADER_USED 1

pinin var portc.7

mens var byte [5]
i var byte
actseg var byte[5]
actseg[0]="H"
actseg[1]="E"
actseg[2]="L"
actseg[3]="L"
actseg[4]="O"
inicio:
HIGH PORTB.5
Serin2 pinin, 188,500,inicio,[wait("S", STR mens5]
for i=0 to 4
iF mens=actseg then apagarled
next
apagarled:
low PORTB.5
PAUSE 5000
GOTO inicio
********************************
Es decir lo que quiero es, primero recibir una S y acontinuación la cadena exacta de caracteres HELLO, si coincide entonces el programa se me va a apagarled: y apaga el led.
Lo hace pero da igual que diga HELLO que TONTO en tal de que empieze por S y contenga 5 caracteres se va a la etiqueta apagarled.
También he probado poniendo actseg[0]="H".....asi hasta el array [4] y me hace lo mismo. estoy desesperado.
Qué estoy haciendo mal??
Existe alguna otra forma de hacer esto?

Espero vuestra ayuda.

Muchas gracias.
Título: RE: Array de caracteres con serin2, no me funciona!
Publicado por: egds en 25 de Septiembre de 2004, 14:41:00
Errata del código

en el código donde pone
iF mens=actseg then apagarled
lleva corchetes con la variable i.

Gracias.

Título: RE: Array de caracteres con serin2, no me funciona!
Publicado por: Sispic en 25 de Septiembre de 2004, 23:42:00
Solo tienes que plantearlo de otra manera
Ejm:
Codigo:

for i=0 to 4
  if mens(i) <> actseg(i) then ERROR
next

TODO_OK:
  print todo Ok
return

ERROR:
   print el caracter nº i no coincide  
return



suerte
Título: RE: Array de caracteres con serin2, no me funciona!
Publicado por: egds en 26 de Septiembre de 2004, 12:06:00
Problema solucionado!
Muchas gracias por tu ayuda sispic. Lo estaba planteando mal como tú decias.

Gracias.