TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: beatAurex1 en 10 de Septiembre de 2006, 19:53:47
-
Alguien me podria echar una ayudadita, sobre como hacer un rango de temperaturas para activar ciertos puertos
if 32<REV<33 then
PORTB.7=0
else
PORTB.7=1
endif
IF 44<SEC<45 THEN
PORTB.6=0
ELSE
PORTB.6=1
ENDIF
TMR0=150
INTCON.2=0
CONTEXT RESTORE
LO puse de esa forma pero no funciona, alguien me podria decir de que manera tengo que poner los signos para que se active en cierto rango
-
Hola que tal asi:
f valadc1>=459 or valadc1<583 and VALADC2>=515 or valadc2<585 then
low LV1 : LOW LH1
LOW LV2 : LOW LH2
LOW LV3 : LOW LH3 'ambos estaticos
LOW LV4 : LOW LH4
endif
Eso lo use para el control analogo del playstation ya que consta de dos pots y era para el control de una camara. en esos rangos del pot 1 que era valadc1 y para el rango del pot 2 que era valadc2 la palanca del play estaba estatica si se movian ya se iban a otras rutinas.
ese es para dos para uno solo quitas la segunda parte. espero te de una idea
-
Gracias navaismo, ya lo he usado, pero al parecer se traba todo mi programa principal esta etiqueta esta en una interrupcion desde que se inicia todo mi programa para chekar siempre unas temperaturas, pero al usarlo como mencionaste se traba todo mi programa sera que falta memoria o es demaisada pesada la funcion?, uso el 877A
X1:
if REV>=31 or REV<=33 then
PORTB.7=0
else
PORTB.7=1
endif
IF SEC>=43 or SEC<=45 THEN
PORTB.6=0
ELSE
PORTB.6=1
ENDIF
TMR0=150
INTCON.2=0
CONTEXT RESTORE
-
Uy no estoy seguro, pero puede ser el ELSE de los dos y que la lectura esta separada de rev y sec, yo por eso meti las dos en un IF que se dedica hacer una sola operacion, sin el ELSE. intenta juntando asi:
If rev>=31 or rev <=33 and sec >=43 or sec<=45 then
portb.7=0: portb.6=0
else
portb.7=1: portb.6=1
endif
esa es la unica forma que se de comparar o de meter intervalos tal vez Gio sepa un poco mas. Esperemos que se conecte.
Y no creo k le haga falta al micro ya que en el programa que hice meti como 7 rutinas de ese tipo y funcionaba bien.
si no te funciona asi intenta quitar el else y hazlo por aparte. por ejemplo:
if ref < 30 or rev > 34 then
portb.7=1
endif
espero te sirva