Autor Tema: Array de caracteres con serin2, no me funciona!  (Leído 2114 veces)

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

Desconectado egds

  • PIC12
  • **
  • Mensajes: 76
Array de caracteres con serin2, no me funciona!
« 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.

Desconectado egds

  • PIC12
  • **
  • Mensajes: 76
RE: Array de caracteres con serin2, no me funciona!
« Respuesta #1 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.


Desconectado Sispic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1700
    • winpic800
RE: Array de caracteres con serin2, no me funciona!
« Respuesta #2 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

Desconectado egds

  • PIC12
  • **
  • Mensajes: 76
RE: Array de caracteres con serin2, no me funciona!
« Respuesta #3 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.


 

anything