Autor Tema: Necesito ayuda, parar un programa cuando un valor deje de subir.  (Leído 2297 veces)

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

Desconectado joliva68

  • PIC12
  • **
  • Mensajes: 89
 Hola amigos:
Imaginemos un lm35 marcando la temperatura en ascenso y cuando deje de subir pare el programa o realice un evento como encender un led he probado esto y como que no, me marca bien la temperatura en lcd pero de encender el led nada de nada. De antemano Gracias.
INCLUDE "modedefs.bas"
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4     
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 1   
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 2     
DEFINE OSC 4
; PARÁMETROS DEL ADC
DEFINE ADC_BITS 10
DEFINE ADC_CLOCK 3
DEFINE ADC_SAMPLEUS 50
; VARIABLES
RES VAR WORD
VAL var word
led var portb.3
bajo var word
TEMP1 VAR byte 'variable de 256
TRISA = 1 'puerto a como entrada
TRISB = 0 'puerto b como salida
PAUSE 500 ' creo 0,5 seg para el lcd esta bien
ADCON1 = %10001110
ADCON0 = %11000001
LCDOUT $FE, 1
INICIO:
; INICIAR CONVERSIÓN
  ADCIN 0, RES ; LEER EL CANAL A
  TEMP1 = 488 * RES ; 1024*488=499712;
  VAL = div32 10 
  LCDOUT $FE,1,"TEMP = ",DEC VAL DIG 3,DEC VAL DIG 2,".",DEC VAL DIG 1, DEC VAL DIG 0,$DF,"C" ; MOSTRAR RESULTADO   
  PAUSE 500 ; PAUSA 0.5 SEGUNDOS
  SEROUT PORTb.0,n2400,[#VAL]
Bajo = val
Pause 2000
If bajo < val then goto rojo
GOTO INICIO
rojo:
high led
pause 10000
low led
GOTO INICIO

END

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: Necesito ayuda, parar un programa cuando un valor deje de subir.
« Respuesta #1 en: 23 de Abril de 2010, 21:07:29 »
lo que pasa es que como tienes el programa, al hacer la comparación entre " bajo" y "VAL" estos valores son siempre iguales. Deberías asignarle a "bajo" el valor de "VAL" antes de realizar la siguiente conversión.
« Última modificación: 23 de Abril de 2010, 21:12:19 por pablomanieri »

Desconectado joliva68

  • PIC12
  • **
  • Mensajes: 89
Re: Necesito ayuda, parar un programa cuando un valor deje de subir.
« Respuesta #2 en: 24 de Abril de 2010, 05:55:40 »
lo que pasa es que como tienes el programa, al hacer la comparación entre " bajo" y "VAL" estos valores son siempre iguales. Deberías asignarle a "bajo" el valor de "VAL" antes de realizar la siguiente conversión.

Pablo muchisimas gracias efectivamente tenía que ponerlo antes de la conversión, ahora si que se funciona me guardaré en la cabeza esto para proximos proyectos.

Un saludo.