Mercurial > public > hwos_code
view src/rtc.asm @ 594:b891cd260d1b
2.97 SP1 release
author | heinrichsweikamp |
---|---|
date | Thu, 17 May 2018 20:46:33 +0200 |
parents | b455b31ce022 |
children | e1f0f5e3d4e4 |
line wrap: on
line source
;============================================================================= ; ; File rtc.asm ## V2.98 ; ; ; Copyright (c) 2011, JD Gascuel, HeinrichsWeikamp, all right reserved. ;============================================================================= ; HISTORY ; 2011-08-08 : [mH] moving from OSTC code #include "hwos.inc" #include "math.inc" sensors CODE ;============================================================================= global rtc_init rtc_init: movlw .1 movwf secs movlw .59 movwf mins movlw .12 movwf hours movlw .1 movwf day movlw .3 movwf month movlw .18 movwf year ; rcall rtc_set_rtc ; writes mins,sec,hours,day,month and year to rtc module ; return global rtc_set_rtc rtc_set_rtc: banksel 0xF16 ; Addresses, F16h through F5Fh, are also used by SFRs, but are not part of the Access RAM movlw 0x55 movwf EECON2 movlw 0xAA movwf EECON2 bsf RTCCFG,RTCWREN ; Unlock sequence for RTCWREN bsf RTCCFG,RTCPTR1 bsf RTCCFG,RTCPTR0 ; year movff year,WREG rcall rtc_dec2bcd ; IN: WREG in decimal, OUT: WREG in BCD, also sets to bank16h! movwf RTCVALL ; year movwf RTCVALH ; dummy write movff day,WREG rcall rtc_dec2bcd ; IN: WREG in decimal, OUT: WREG in BCD, also sets to bank16h! movwf RTCVALL ; day movff month,WREG rcall rtc_dec2bcd ; IN: WREG in decimal, OUT: WREG in BCD, also sets to bank16h! movwf RTCVALH ; month movff hours,WREG rcall rtc_dec2bcd ; IN: WREG in decimal, OUT: WREG in BCD, also sets to bank16h! movwf RTCVALL ; hours movlw d'0' rcall rtc_dec2bcd ; IN: WREG in decimal, OUT: WREG in BCD, also sets to bank16h! movwf RTCVALH ; weekday movff secs,WREG rcall rtc_dec2bcd ; IN: WREG in decimal, OUT: WREG in BCD, also sets to bank16h! movwf RTCVALL ; secs movff mins,WREG rcall rtc_dec2bcd ; IN: WREG in decimal, OUT: WREG in BCD, also sets to bank16h! movwf RTCVALH ; minutes movlw 0x55 movwf EECON2 movlw 0xAA movwf EECON2 bcf RTCCFG,RTCWREN ; Lock sequence for RTCWREN banksel common return rtc_dec2bcd: banksel lo movwf lo ; Input in decimal setf hi ; 10s rtc_dec2bcd2: incf hi,F ; Count 10's movlw d'10' subwf lo,F btfss STATUS,N bra rtc_dec2bcd2 movlw d'10' addwf lo,F ; 1s swapf hi,W ; swap to bit 7-4 -> WREG addwf lo,W ; Result in BCD banksel 0xF16 ; Addresses, F16h through F5Fh, are also used by SFRs, but are not part of the Access RAM return END