summaryrefslogtreecommitdiff
path: root/software/ihu/ihu.asm
diff options
context:
space:
mode:
Diffstat (limited to 'software/ihu/ihu.asm')
-rw-r--r--software/ihu/ihu.asm82
1 files changed, 19 insertions, 63 deletions
diff --git a/software/ihu/ihu.asm b/software/ihu/ihu.asm
index bf87899..dce1fa7 100644
--- a/software/ihu/ihu.asm
+++ b/software/ihu/ihu.asm
@@ -54,6 +54,7 @@ TTX_SDA EQU 7
TMP EQU H'0020'
TTX_BYTE EQU H'0021'
TTX_CNT EQU H'0022'
+WAIT_CNT EQU H'0023'
;; all pages
W_TEMP EQU H'007E'
@@ -113,7 +114,7 @@ init
;; bank 1
bsf STATUS,RP0
bcf STATUS,RP1
- movlw b'11000111'
+ movlw b'11000001'
movwf OPTION_REG
clrf PSTRCON
movlw b'00010000'
@@ -157,6 +158,20 @@ init
;; -------------------------------------
;; SUBROUTINES
+wait_ms
+ movwf WAIT_CNT
+wait_next
+ movlw .9
+ movwf TMR0
+ bcf INTCON,T0IF
+wait_loop
+ btfss INTCON,T0IF
+ goto wait_loop
+ decfsz WAIT_CNT,f
+ goto wait_next
+ return
+
+ ;; -------------------------------------
uart_rx_byte
btfsc RCSTA,FERR
goto uart_rx_fe
@@ -170,26 +185,11 @@ uart_rx_fe
;; -------------------------------------
ttx_send_byte
- bsf PORTD,TTX_SCL
movwf TTX_BYTE
- clrf TTX_CNT
+ bsf PORTD,TTX_SCL
+ movlw .3
bcf PORTD,TTX_SCL
-ttx_pre
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- decfsz TTX_CNT,f
- goto ttx_pre
+ call wait_ms
movlw .8
movwf TTX_CNT
ttx_next_bit
@@ -201,48 +201,11 @@ ttx_next_bit
nop
nop
nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
bcf PORTD,TTX_SCL
nop
nop
nop
nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
rlf TTX_BYTE,f
decfsz TTX_CNT,f
goto ttx_next_bit
@@ -256,16 +219,9 @@ main
btfsc STATUS,Z
goto main
- bcf PORTD,DTMF_PWRDWN
- bcf INTCON,T0IF
- clrf TMR0
movf TMP,w
call ttx_send_byte
clrf TMP
-loop
- btfss INTCON,T0IF
- goto loop
- bsf PORTD,DTMF_PWRDWN
goto main
powerdown