summaryrefslogtreecommitdiff
path: root/software/ihu
diff options
context:
space:
mode:
Diffstat (limited to 'software/ihu')
-rw-r--r--software/ihu/ihu.asm72
-rw-r--r--software/ihu/ttx.inc23
2 files changed, 91 insertions, 4 deletions
diff --git a/software/ihu/ihu.asm b/software/ihu/ihu.asm
index cec3e51..c213698 100644
--- a/software/ihu/ihu.asm
+++ b/software/ihu/ihu.asm
@@ -369,6 +369,78 @@ uart_rx_fe
main
; sleep
; nop
+ ;; --------------------
+ ;; TTX Test
+ movf TMP,w
+ btfsc STATUS,Z
+ goto main
+
+ movwf BUF
+ clrf TMP
+ movlw BUF+1
+ movwf FSR
+
+ movlw .1
+ movwf TTX_BYTE_CNT
+main_read_bytes
+ movf TMP,w
+ btfsc STATUS,Z
+ goto main_read_bytes
+ movwf INDF
+ incf FSR,f
+ clrf TMP
+ decfsz TTX_BYTE_CNT,f
+ goto main_read_bytes
+
+ movlw BUF
+ movwf FSR
+ movlw 0xA2
+ call ttx_send
+
+ xorlw .0
+ btfss STATUS,Z
+ goto main_error
+
+ movlw 'O'
+ movwf TXREG
+ movlw .1
+ call wait_ms
+ movlw 'K'
+ 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
+ goto main
+
+main_error
+ movlw 'E'
+ movwf TXREG
+ movlw .1
+ call wait_ms
+ movlw 'R'
+ movwf TXREG
+ movlw .1
+ call wait_ms
+ movlw 'R'
+ 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
+ goto main
;; --------------------
;; ADC Test
diff --git a/software/ihu/ttx.inc b/software/ihu/ttx.inc
index b9f45e7..2098340 100644
--- a/software/ihu/ttx.inc
+++ b/software/ihu/ttx.inc
@@ -108,7 +108,7 @@ ttx_send_frame
movf TTX_BYTE_CNT,f
btfsc STATUS,Z
- return
+ goto ttx_get_csum
ttx_next_byte
call ttx_break
@@ -119,16 +119,31 @@ ttx_next_byte
decfsz TTX_BYTE_CNT,f
goto ttx_next_byte
+ttx_get_csum
call ttx_break
call ttx_recv_byte
movf TTX_BYTE,w
xorwf TTX_CSUM,w
btfss STATUS,Z
goto ttx_csum_error
- return
+ retlw .0
ttx_csum_error
- ;; TODO: react to comm error
- return
+ retlw .1
;; -------------------------------------
+ttx_send
+ call ttx_send_frame
+ movwf TTX_BYTE
+ call ttx_break
+ btfsc TTX_BYTE,0
+ bcf PORTD,TTX_SDA
+ btfss TTX_BYTE,0
+ bsf PORTD,TTX_SDA
+ bsf PORTD,TTX_SCL
+ nop
+ nop
+ nop
+ bcf PORTD,TTX_SCL
+ return
+ ;; -------------------------------------