Request RTC data to the MCF when shutdown is done by software

This commit is contained in:
David Gálvez
2016-02-14 19:16:58 +00:00
parent 039da05264
commit b5feda9ad3

View File

@@ -40,6 +40,9 @@ GO_SUB EQU 0x4C ;WENN GLEICH 0xFB DANN SUBROUTINE AUSF
GO_INT EQU 0x4D ;WENN GLEICH 0xFB DANN SUBROUTINE AUSF<53>HREN
EAPIR1 EQU 0x4E ;INTERRUPT ACTIV UND ENABLE
EAPIR2 EQU 0x4F ;INTERRUPT ACTIV UND ENABLE
COUNT1 EQU 0x50 ;COUNTER FOR WAIT LOOP
COUNT2 EQU 0x51 ;COUNTER FOR WAIT LOOP
SW_POWER_OFF_FLAG EQU 0x52 ;SOFTWARE SHUTDOWN FLAG
;BANK 1 AB 0x100
RX_BUFFER EQU 0x100 ;0x80 BYT BUFFER BIS 0x17F BANK
TX_BUFFER EQU 0x180 ;0X80 BYT BUFFER BIS 0x1FF BANK
@@ -277,6 +280,7 @@ KALT_START
CLRF RX_STATUS
CLRF TX_STATUS
BSF PIE1,TMR1IE ;Enable Timer1 interrupt
CLRF SW_POWER_OFF_FLAG
;AD WANDLER INITIALISIEREN
CLRF AD_KANAL ;BEI 0 BEGINNEN
CLRF ADCON0 ;AD MOUDUL AUS
@@ -318,6 +322,8 @@ MAIN
WARTEN
BTFSC TRISD,RD0 ;SKIP IF POWER ON
SLEEP ;SLEPP BIS ZUM N<>CHSTEN INTERRUPT
TSTFSZ SW_POWER_OFF_FLAG ;SOFTWARE SHUTDOWN FLAG SET?
CALL SW_POWER_OFF ;YES->
BRA MAIN
MAIN2
CALL EXTERN_SUBROUTINES ;EXTERNE SUBROUTINEN AUSF<53>HREN AN STELLE 0 MUSS 0xFA STEHEN SONST UNG<4E>LTIG
@@ -349,6 +355,29 @@ POWER_AUS
BSF TRISA,RA7 ;CLOCK DEAKTIVIEREN
CLRF POWER_ON_TIME ;R<>CKSETZEN
BRA LS_OFF_POWER ;LADESTROM EINSTELLEN
SW_POWER_OFF
;BEFORE SOFTWARE POWER OFF GET RTC DATA FROM MCF
MOVLW REQ_RTCD_FROM_MCF
MOVWF TXREG ;BLOCK HEADER = 0X81
;WAIT 260 ms APPROX FOR MCF TO SEND RTC DATA
MOVLW .255
MOVWF COUNT1
MOVWF COUNT2
WAIT_MCF
NOP
NOP
NOP
NOP
NOP
DECFSZ COUNT1
GOTO WAIT_MCF
MOVLW .255
MOVWF COUNT1
DECFSZ COUNT2
GOTO WAIT_MCF
CALL POWER_AUS
CLRF SW_POWER_OFF_FLAG
RETURN
;LADESTROM EINSTELLEN ----------------------------
LADESTROM
BTFSC TRISD,RD0 ; ONPOWER?
@@ -673,7 +702,7 @@ LC2:
CPFSEQ POSTINC1 ;=? SIKP JA
BRA LC4 ;NEIN->
;POWER OFF
CALL POWER_AUS
INCF SW_POWER_OFF_FLAG ;SET SOFTWARE SHUTDOWN FLAG
CLRF RX_STATUS ;JA FERTIG
RETFIE
LC4: