summaryrefslogtreecommitdiff
path: root/software
diff options
context:
space:
mode:
authorChristian Pointner <equinox@mur.at>2011-12-11 15:13:12 +0000
committerChristian Pointner <equinox@mur.at>2011-12-11 15:13:12 +0000
commitc449fa962eef50dbb34238605cdf702dd5060a37 (patch)
tree3efda49acd457a73d3cf790258f4f676f265ba50 /software
parent- fixed error when trying to register a known user/email (diff)
rtc changed to ds1374c
git-svn-id: https://svn.spreadspace.org/mur.sat@222 7de4ea59-55d0-425e-a1af-a3118ea81d4c
Diffstat (limited to 'software')
-rw-r--r--software/ihu/ihu.asm240
-rw-r--r--software/ihu/rtc.inc61
2 files changed, 130 insertions, 171 deletions
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