SoloCodigo
Programación Específica => Microcontroladores => Mensaje iniciado por: allisap en Martes 18 de Abril de 2006, 23:08
-
Saludos,
tengo un problema :(
necesito usar el modulo LVD (Low voltage detect )del pic18f242 para grabar datos en la EEPROM del pic cuando este se este apagando, alguien sabe como puedo hacerlo
gracias :hola:
-
Bueno, me parece que en el datasheet del 18F242 es suficientemente claro, ¿cual es el problema exactamente? que parte de la implementacion no te funciona?
explicanos que has hecho para ver como te podemos ayudar.
suerte
oldkami
-
Saludos :hola:
bueno, creo que lo que pasa es que no generaba la interrupcion, asi que lo solucione de otra forma, puse un comparador con un 311 y un nivel de referencia (que se mantiene constante mas tiempo ), el comparador genera un pulso cuando la fuente de alimentacion se esta apagando y el pic guarda los datos en la eeprom, :D
hubiera sido mejor con el LVD pero asi tambien funciono, <_<
de todas formas seguire buscando por que no genera la interrupcion ;)
-
puedes enviar la seccion del codigo donde configuras el LVD y la parte donde se atiende la interrupcion?
-
bueno, esta seccion es la que uso para configurar el lvd
;-************************************************
;-************************************************
; RUTINA CONFIGURAR Y ACTIVAR EL LVD (LOW VOLTAGE DETECT)
; LVDCON REGISTER
; — — IRVST LVDEN LVDL3 LVDL2 LVDL1 LVDL0
CONFIGURAR_LVD
MOVLW 0X0D ;1101 <LVDL3:LDVL0> SELECCIOPN NIVE
MOVWF LVDCON ; DE UMBRAL = 4.2-4.45 V
BCF INTCON,GIE ;DESACTIVAR INTERRUPCIONES
BCF PIE2,LVDIE ;DESACTIVAR INTERRUPCIONES
BSF LVDCON,LVDEN ;ACTIVAR EL MODULO LVD
ESTABLE
BTFSS LVDCON,IRVST ;ESTE CICLO ESPERA A QUE SE
GOTO ESTABLE ;ESTABILICE EL VOLTAJE DE ALIMENTACION
BCF PIR2,LVDIF
BSF INTCON,GIE ;ACTIVAR INTERRUPCIONES
BSF PIE2,LVDIE ;ACTIVAR INTERRUPCIONES
RETURN
y esta es la seccion para usar la interrupcion
ORG 0x08 ;interrupcion para bajo voltaje
BTFSS PIR2,LVDIE ; CHECAR BANDERA DE LVD
GOTO regresa ; REGRESAR
RCALL GRABA_DATOS
BCF PIR2,LVDIE
RCALL RETARDO ;ESPERO UN TIEMPO
RCALL RETARDO ;PARA QUE SE APAGUE
RCALL RETARDO ; EL MICRO
RCALL RETARDO
RCALL RETARDO
regresa
RETFIE 0 ; SI NO SE HA APAGADO REGRESO
bueno, aun no se que es lo que esta mal ;)
-
Intenta lo siguiente:
CONFIGURAR_LVD
MOVLW 0X0D ;1101 <LVDL3:LDVL0> SELECCIOPN NIVE
MOVWF LVDCON ; DE UMBRAL = 4.2-4.45 V
BCF INTCON,GIE ;DESACTIVAR INTERRUPCIONES
BCF PIE2,LVDIE ;DESACTIVAR INTERRUPCIONES
BSF LVDCON,LVDEN ;ACTIVAR EL MODULO LVD
ESTABLE
BTFSS LVDCON,IRVST ;ESTE CICLO ESPERA A QUE SE
GOTO ESTABLE ;ESTABILICE EL VOLTAJE DE ALIMENTACION
BCF PIR2,LVDIF
BSF PIE2,LVDIE ;ACTIVAR INTERRUPCIONES
BSF INTCON,PEIE ;Activar interrupciones por perifericos :)
BSF INTCON,GIE ;ACTIVAR INTERRUPCIONES
RETURN
deberia funcionar, cabe decir que el RCON,IPEN debe estar clear..
suerte.
oldkami