From c449fa962eef50dbb34238605cdf702dd5060a37 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sun, 11 Dec 2011 15:13:12 +0000 Subject: rtc changed to ds1374c git-svn-id: https://svn.spreadspace.org/mur.sat@222 7de4ea59-55d0-425e-a1af-a3118ea81d4c --- software/ihu/ihu.asm | 240 ++++++++++++++++++++++----------------------------- software/ihu/rtc.inc | 61 ++++++------- 2 files changed, 130 insertions(+), 171 deletions(-) (limited to 'software') diff --git a/software/ihu/ihu.asm b/software/ihu/ihu.asm index 434ddfb..716ac72 100644 --- a/software/ihu/ihu.asm +++ b/software/ihu/ihu.asm @@ -95,6 +95,11 @@ DTMF_BUF EQU H'0030' ; 5Bytes for incoming DTMF commands DTMF_BUF_END EQU H'0034' DTMF_BUF_PTR EQU H'0035' DTMF_CS EQU H'0036' + +RTC_TOD0 EQU H'003A' +RTC_TOD1 EQU H'003B' +RTC_TOD2 EQU H'003C' +RTC_TOD3 EQU H'003D' BUF EQU H'0040' BUF_END EQU H'004F' @@ -330,6 +335,7 @@ uart_rx_fe ;; ------------------------------------- ;; MAINLOOP main + ;; -------------------- ;; ADC Test ;; call adc_get_solar @@ -383,218 +389,176 @@ main ;; movlw .11 ;; call wait_ms + ;; clrf TMP ;; goto main + ;; -------------------- ;; DTMF Test program - movf TMP,f - btfsc STATUS,Z - goto main + ;; movf TMP,f + ;; btfsc STATUS,Z + ;; goto main - movf DTMF_BUF,w - movwf TXREG - movlw .1 - call wait_ms + ;; movf DTMF_BUF,w + ;; movwf TXREG + ;; movlw .1 + ;; call wait_ms - movf DTMF_BUF+1,w - movwf TXREG - movlw .1 - call wait_ms + ;; movf DTMF_BUF+1,w + ;; movwf TXREG + ;; movlw .1 + ;; call wait_ms - movf DTMF_BUF+2,w - movwf TXREG - movlw .1 - call wait_ms + ;; movf DTMF_BUF+2,w + ;; movwf TXREG + ;; movlw .1 + ;; call wait_ms - movf DTMF_BUF+3,w - movwf TXREG - movlw .1 - call wait_ms + ;; movf DTMF_BUF+3,w + ;; movwf TXREG + ;; movlw .1 + ;; call wait_ms - movf DTMF_BUF+4,w - movwf TXREG - movlw .1 - call wait_ms + ;; movf DTMF_BUF+4,w + ;; movwf TXREG + ;; movlw .1 + ;; call wait_ms - movlw ' ' - movwf TXREG - movlw .1 - call wait_ms + ;; movlw ' ' + ;; movwf TXREG + ;; movlw .1 + ;; call wait_ms - movf DTMF_CS,f - btfsc STATUS,Z - movlw '!' - btfss STATUS,Z - movlw 'x' - movwf TXREG - movlw .1 - call wait_ms + ;; movf DTMF_CS,f + ;; btfsc STATUS,Z + ;; movlw '!' + ;; btfss STATUS,Z + ;; movlw 'x' + ;; movwf TXREG + ;; movlw .1 + ;; call wait_ms - movlw '\r' - movwf TXREG - movlw .1 - call wait_ms - movlw '\n' - movwf TXREG - movlw .1 - call wait_ms + ;; movlw '\r' + ;; movwf TXREG + ;; movlw .1 + ;; call wait_ms + ;; movlw '\n' + ;; movwf TXREG + ;; movlw .1 + ;; call wait_ms - clrf TMP - movlw DTMF_BUF - movwf DTMF_BUF_PTR - clrf DTMF_CS + ;; clrf TMP + ;; movlw DTMF_BUF + ;; movwf DTMF_BUF_PTR + ;; clrf DTMF_CS - goto main + ;; goto main + ;; -------------------- + ;; RTC Test program + movf TMP,f + btfsc STATUS,Z + goto main - - movlw BUF - movwf FSR call rtc_get_time - swapf BUF+4,w - andlw b'00000011' - call digit - movwf TXREG - movlw .1 - call wait_ms - - movf BUF+4,w + swapf RTC_TOD3,w andlw b'00001111' call digit movwf TXREG movlw .1 call wait_ms - - movlw '.' - movwf TXREG - movlw .1 - call wait_ms - - swapf BUF+5,w - andlw b'00000001' - call digit - movwf TXREG - movlw .1 - call wait_ms - - movf BUF+5,w - andlw b'00001111' - call digit - movwf TXREG - movlw .1 - call wait_ms - - movlw '.' - movwf TXREG - movlw .1 - call wait_ms - swapf BUF+6,w + movf RTC_TOD3,w andlw b'00001111' call digit movwf TXREG movlw .1 call wait_ms - movf BUF+6,w + swapf RTC_TOD2,w andlw b'00001111' call digit movwf TXREG movlw .1 call wait_ms - - movlw ' ' - movwf TXREG - movlw .1 - call wait_ms - swapf BUF+2,w - andlw b'00000011' - call digit - movwf TXREG - movlw .1 - call wait_ms - - movf BUF+2,w + movf RTC_TOD2,w andlw b'00001111' call digit movwf TXREG movlw .1 call wait_ms - - movlw ':' - movwf TXREG - movlw .1 - call wait_ms - - swapf BUF+1,w - andlw b'00000111' - call digit - movwf TXREG - movlw .1 - call wait_ms - movf BUF+1,w + swapf RTC_TOD1,w andlw b'00001111' call digit movwf TXREG movlw .1 call wait_ms - movlw ':' - movwf TXREG - movlw .1 - call wait_ms - - swapf BUF,w - andlw b'00000111' - call digit - movwf TXREG - movlw .1 - call wait_ms - - movf BUF,w + movf RTC_TOD1,w andlw b'00001111' call digit movwf TXREG movlw .1 call wait_ms - movlw '\r' - movwf TXREG - movlw .1 - call wait_ms - movlw '\n' - movwf TXREG - movlw .1 - call wait_ms - - call temp_read_value - swapf OWIRE_BYTE,w + swapf RTC_TOD0,w andlw b'00001111' call digit movwf TXREG movlw .1 call wait_ms - movf OWIRE_BYTE,w + movf RTC_TOD0,w andlw b'00001111' call digit movwf TXREG movlw .1 call wait_ms - + movlw '\r' movwf TXREG movlw .1 call wait_ms movlw '\n' movwf TXREG - + clrf TMP goto main + + ;; -------------------- + ;; Temp Test program + ;; movf TMP,f + ;; btfsc STATUS,Z + ;; goto main + + ;; call temp_read_value + ;; swapf OWIRE_BYTE,w + ;; andlw b'00001111' + ;; call digit + ;; movwf TXREG + ;; movlw .1 + ;; call wait_ms + + ;; movf OWIRE_BYTE,w + ;; andlw b'00001111' + ;; call digit + ;; movwf TXREG + ;; movlw .1 + ;; call wait_ms + + ;; movlw '\r' + ;; movwf TXREG + ;; movlw .1 + ;; call wait_ms + ;; movlw '\n' + ;; movwf TXREG + + ;; clrf TMP + ;; goto main powerdown sleep diff --git a/software/ihu/rtc.inc b/software/ihu/rtc.inc index 79b4bdc..3f09557 100644 --- a/software/ihu/rtc.inc +++ b/software/ihu/rtc.inc @@ -32,23 +32,21 @@ ;; constants RTC_ADDR_W EQU b'11010000' RTC_ADDR_R EQU b'11010001' -RTC_REG_SEC EQU H'00' -RTC_REG_MIN EQU H'01' -RTC_REG_HOUR EQU H'02' -RTC_REG_DOW EQU H'03' -RTC_REG_DOM EQU H'04' -RTC_REG_MON EQU H'05' -RTC_REG_YEAR EQU H'06' -RTC_REG_A1S EQU H'07' -RTC_REG_A1M EQU H'08' -RTC_REG_A1H EQU H'09' -RTC_REG_A1D EQU H'0A' -RTC_REG_A2M EQU H'0B' -RTC_REG_A2H EQU H'0C' -RTC_REG_A2D EQU H'0D' -RTC_REG_CON EQU H'0E' -RTC_REG_STAT EQU H'0F' +RTC_REG_TOD0 EQU H'00' +RTC_REG_TOD1 EQU H'01' +RTC_REG_TOD2 EQU H'02' +RTC_REG_TOD3 EQU H'03' +RTC_REG_ALM0 EQU H'04' +RTC_REG_ALM1 EQU H'05' +RTC_REG_ALM2 EQU H'06' +RTC_REG_CTL EQU H'07' +RTC_REG_STAT EQU H'08' +RTC_REG_TCH EQU H'09' +RTC_INIT_CTL EQU b'00001000' +;; RTC_INIT_TCH EQU b'10101011' ; trickle charger enabled with diode and 4kohm +RTC_INIT_TCH EQU b'00001011' ; trickle charger disabled + ;; ------------------------------------- i2c_start bsf STATUS,RP0 @@ -204,46 +202,43 @@ rtc_init_after_clock_fail btfsc RTC_BYTE,0 goto rtc_error_ack - movlw RTC_REG_SEC + movlw RTC_REG_TOD0 call i2c_send_byte btfsc RTC_BYTE,0 goto rtc_error_ack - movlw .4 + movlw .7 movwf RTC_BYTE_CNT -rtc_init_clear1 +rtc_init_clear clrw call i2c_send_byte btfsc RTC_BYTE,0 goto rtc_error_ack decfsz RTC_BYTE_CNT,f - goto rtc_init_clear1 + goto rtc_init_clear - movlw .2 - movwf RTC_BYTE_CNT -rtc_init_clear2 - movlw .1 + movlw RTC_INIT_CTL call i2c_send_byte btfsc RTC_BYTE,0 goto rtc_error_ack - decfsz RTC_BYTE_CNT,f - goto rtc_init_clear2 - movlw .10 - movwf RTC_BYTE_CNT -rtc_init_clear3 clrw call i2c_send_byte btfsc RTC_BYTE,0 goto rtc_error_ack - decfsz RTC_BYTE_CNT,f - goto rtc_init_clear3 + + movlw RTC_INIT_TCH + call i2c_send_byte + btfsc RTC_BYTE,0 + goto rtc_error_ack call i2c_stop return ;; --------------- rtc_get_time + movlw RTC_TOD0 + movwf FSR call i2c_start movlw RTC_ADDR_W @@ -251,7 +246,7 @@ rtc_get_time btfsc RTC_BYTE,0 goto rtc_error_ack - movlw RTC_REG_SEC + movlw RTC_REG_TOD0 call i2c_send_byte btfsc RTC_BYTE,0 goto rtc_error_ack @@ -263,7 +258,7 @@ rtc_get_time btfsc RTC_BYTE,0 goto rtc_error_ack - movlw .7 + movlw .4 movwf RTC_BYTE_CNT rtc_get_time_loop call i2c_recv_byte -- cgit v1.2.3