From b5feda9ad320d80d590fa8be68e9ddae927f8e86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20G=C3=A1lvez?= Date: Sun, 14 Feb 2016 19:16:58 +0000 Subject: [PATCH] Request RTC data to the MCF when shutdown is done by software --- MLAB/firebee1/firebee1.asm | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/MLAB/firebee1/firebee1.asm b/MLAB/firebee1/firebee1.asm index c347365..da6f628 100644 --- a/MLAB/firebee1/firebee1.asm +++ b/MLAB/firebee1/firebee1.asm @@ -40,6 +40,9 @@ GO_SUB EQU 0x4C ;WENN GLEICH 0xFB DANN SUBROUTINE AUSF GO_INT EQU 0x4D ;WENN GLEICH 0xFB DANN SUBROUTINE AUSFÜ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ÜHREN AN STELLE 0 MUSS 0xFA STEHEN SONST UNGÜ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: