diff options
Diffstat (limited to 'software/ihu')
-rw-r--r-- | software/ihu/ihu.asm | 72 | ||||
-rw-r--r-- | software/ihu/ttx.inc | 23 |
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 + ;; ------------------------------------- |