Mercurial > public > hwos_code
view src/rtc.asm @ 608:d866684249bd
work on 2.99 stable
author | heinrichsweikamp |
---|---|
date | Mon, 07 Jan 2019 21:13:43 +0100 |
parents | ca4556fb60b9 |
children | c40025d8e750 |
line wrap: on
line source
;============================================================================= ; ; File rtc.asm ## V2.98c ; ; ; Copyright (c) 2011, JD Gascuel, HeinrichsWeikamp, all right reserved. ;============================================================================= ; HISTORY ; 2011-08-08 : [mH] moving from OSTC code #include "hwos.inc" #include "math.inc" rtc CODE ;============================================================================= global rtc_init rtc_init: movlw .1 movwf secs movlw .59 movwf mins movlw .12 movwf hours movlw .2 movwf day movlw .12 movwf month movlw .17 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: temp1 in WREG, OUT: WREG in BCD, also sets to bank16h! movwf RTCVALL ; year movwf RTCVALH ; dummy write movff day,WREG rcall rtc_dec2bcd ; IN: temp1 in WREG, OUT: WREG in BCD, also sets to bank16h! movwf RTCVALL ;day movff month,WREG rcall rtc_dec2bcd ; IN: temp1 in WREG, OUT: WREG in BCD, also sets to bank16h! movwf RTCVALH ;month movff hours,WREG rcall rtc_dec2bcd ; IN: temp1 in WREG, OUT: WREG in BCD, also sets to bank16h! movwf RTCVALL ;hours movlw d'0' rcall rtc_dec2bcd ; IN: temp1 in WREG, OUT: WREG in BCD, also sets to bank16h! movwf RTCVALH ;weekday movff secs,WREG rcall rtc_dec2bcd ; IN: temp1 in WREG, OUT: WREG in BCD, also sets to bank16h! movwf RTCVALL ;secs movff mins,WREG rcall rtc_dec2bcd ; IN: temp1 in WREG, 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