TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: khasistos en 27 de Septiembre de 2004, 14:31:00

Título: INSTRUCCION PARA COMPARAR CUANDO X ESTA COMPRENDIDA ENTRE 2 LIMITES
Publicado por: khasistos en 27 de Septiembre de 2004, 14:31:00
hOLA:
CONFIESO QUE HE TRATADO DE BUSCAR ,ANTES DE PREGUNTAR,PERO NO ENCUENTRO EL OPERADOR MATEMATICO PARA LO SIGUIENTE:

QUIERO DETECTAR CUANDO MI VARIABLE X ESTE COMPRENDIDA ENTRE 2 VALORES EJ

IF X >500 <700  THEN........

ESTE ES UN ERROR DE SINTAXIS PERO ES ESO LO QUE QUIERO HACER Y NO LO LOGRO.ES CASE??LO QUE NECESITO......
GRACIAS
KHASISTOS
Título: RE: INSTRUCCION PARA COMPARAR CUANDO X ESTA COMPRENDIDA ENTRE 2 LIMITES
Publicado por: Nocturno en 27 de Septiembre de 2004, 14:42:00
Prueba esto, Khasistos:

if x>500 and x<700 then

Título: RE: INSTRUCCION PARA COMPARAR CUANDO X ESTA COMPRENDIDA ENTRE 2 LIMITES
Publicado por: tonyusp en 27 de Septiembre de 2004, 17:25:00
Esta totalmente correcto lo que dijo nocturno66 porlomenos en pro funciona asi en plus calculo que tambien.

Yo tenia hecho una rutinita asi:

botones:
IF PORTB.5=0 AND boton=<7 Then                  boton=boton+1                Pause 200
          Return
          EndIF
IF PORTB.6=0 AND boton>=1 Then
       boton=boton-1
       Pause 200
       Return
       EndIF
Return

Ahi vos cambias los operadores para lo que quieras =,<,>,>=,<=

Un abrazo
Tony
Título: RE: INSTRUCCION PARA COMPARAR CUANDO X ESTA COMPRENDIDA ENTRE 2 LIMITES
Publicado por: khasistos en 27 de Septiembre de 2004, 17:41:00
Hola:

Gracias ,la palabra "magica" es AND

Gracias a todos FUNCIONO......

Saludos
Khasistos
Título: RE: INSTRUCCION PARA COMPARAR CUANDO X ESTA COMPRENDIDA ENTRE 2 LIMITES
Publicado por: RGL en 28 de Septiembre de 2004, 02:48:00
También puedes hacer combinaciones con paréntesis:

 IF ((esto AND aquello) OR (lootro AND lodemas)) THEN

Este tipo de expresiones hace crecer mucho el código


Saludos
Ricky
Madrid-España
Título: RE: INSTRUCCION PARA COMPARAR CUANDO X ESTA COMPRENDIDA ENTRE 2 LIMITES
Publicado por: MarquesSalsero en 28 de Septiembre de 2004, 04:26:00
Atentos a las evaluaciones muy complicadas, a veces el PBP Pro se hace un lio, recientemente perdi una tarde entera porque el maldito compilador no evaluava correctamente una igualdad del tipo:

if CHKS=(rec1+rec2+rec3+rec4+rec5+(rec6*rec7)) then comprobado

Lo que hay entre los parentesis no es exactamente lo que tenia pero es para dar una idea.

Pues bien al final tuve que hacer lo siguiente

CHKS_TEMP=(rec1+rec2+rec3+rec4+rec5+(rec6*rec7))
if CHKS=CHKS_TEMP then comprobado

si no, no funcionaba
Título: RE: INSTRUCCION PARA COMPARAR CUANDO X ESTA COMPRENDIDA ENTRE 2 LIMITES
Publicado por: khasistos en 28 de Septiembre de 2004, 05:57:00
Hola :
Gracias por tus conceptos explicativos ,si me ha pasado de "aceptar" alguna operacion matematica de comparacion y luego no darle bolilla pese a compilar tambien sin errores,ambas en pro y tambien en Plus.Si la expresion que puse de ejemplo se usa en Plus separada por coma no detecta error de sintaxis ni en la compilacion y sin embargo no funciona mas que con la primer expresion.

Abrazos para todos
khasistos
Título: RE: INSTRUCCION PARA COMPARAR CUANDO X ESTA COMPRENDIDA ENTRE 2 LIMITES
Publicado por: MarquesSalsero en 28 de Septiembre de 2004, 07:13:00
Lo cierto es que es una, putada diriamos en españa, cuando te vuelves loco y el problema es un fallo del compilador... Y es que todos los programadores cometen fallos y los que hacen los compiladores no se quieren quedar sin su parte...
Título: RE: INSTRUCCION PARA COMPARAR CUANDO X ESTA COMPRENDIDA ENTRE 2 LIMITES
Publicado por: Sispic en 28 de Septiembre de 2004, 07:42:00
Habria que tener una cosa presente en pbp , las operaciones intermedias las hacen con variables word , es decir que si un resultado es mayor a 255 y CHKS es del tipo Byte ,  es normal es que no se cumpla nunca el ejemplo expuesto :

if CHKS=(rec1+rec2+rec3+rec4+rec5+(rec6*rec7)) then comprobado

el resultado (rec1+rec2+rec3+rec4+rec5+(rec6*rec7)) es guardado en una temporal del tipo word . Aunque es un fallo que no lo hayan tenido en cuenta .


Título: RE: INSTRUCCION PARA COMPARAR CUANDO X ESTA COMPRENDIDA ENTRE 2 LIMITES
Publicado por: Nocturno en 29 de Septiembre de 2004, 04:21:00
Ahora encuentro la explicación a un problema que me tuvo mareado bastante tiempo.
Lo solucioné como apunta Marqués, pero no fue por lógica, más bien por intuición.
Gracias Sisco