diff options
Diffstat (limited to 'software/ihu/ihu.asm')
-rw-r--r-- | software/ihu/ihu.asm | 136 |
1 files changed, 31 insertions, 105 deletions
diff --git a/software/ihu/ihu.asm b/software/ihu/ihu.asm index 33ca45d..c934137 100644 --- a/software/ihu/ihu.asm +++ b/software/ihu/ihu.asm @@ -180,6 +180,7 @@ init ;; bank 3 bsf STATUS,RP0 bsf STATUS,RP1 + ;; movlw b'00000000' ; TX non-inverted, 8bit Baudrate, no auto baud detect movlw b'00010000' ; TX inverted, 8bit Baudrate, no auto baud detect movwf BAUDCTL movlw b'11101111' ; AN0-AN3,AN5-AN7 as analog @@ -213,7 +214,8 @@ init clrf ADCON1 movlw b'00100100' ; Baudrate = High Speed, async mode, transmit enabled, 8bit movwf TXSTA - movlw .25 ; Baudrate = 19200 (@ 8MHz) + ;; movlw .8 Baudrate = 57600 (@ 8MHz) -> -3,55 % Error + movlw .25 ; Baudrate = 19200 (@ 8MHz) -> 0,16 % Error movwf SPBRG clrf SPBRGH movlw b'00100000' ; enable UART RX Interrupt @@ -257,19 +259,7 @@ wait_loop return ;; ------------------------------------- -uart_rx_byte - btfsc RCSTA,FERR - goto uart_rx_fe - movf RCREG,w ; TODO: check parity - movwf TMP ; TODO: move to input string - return - -uart_rx_fe - movf RCREG,w - return - - ;; ------------------------------------- - ;; include "math.inc" + include "uart.inc" ;; ------------------------------------- include "i2c.inc" @@ -287,6 +277,9 @@ uart_rx_fe ;; include "solar.inc" ;; ------------------------------------- + ;; include "math.inc" + + ;; ------------------------------------- ;; MAINLOOP main ; sleep @@ -297,69 +290,26 @@ main ;; call solar_calc_power ;; movlw .255 - ;; movwf TXREG - ;; movlw .1 - ;; call wait_ms + ;; call uart_tx_byte ;; movf ADC_SOLAR_C0,w - ;; movwf TXREG - ;; movlw .1 - ;; call wait_ms - + ;; call uart_tx_byte ;; movf ADC_SOLAR_C1,w - ;; movwf TXREG - ;; movlw .1 - ;; call wait_ms - + ;; call uart_tx_byte ;; movf ADC_SOLAR_C2,w - ;; movwf TXREG - ;; movlw .1 - ;; call wait_ms - - ;; movf ADC_SOLAR_C3,w - ;; movwf TXREG - ;; movlw .1 - ;; call wait_ms + ;; call uart_tx_byte ;; movf ADC_SOLAR_V0,w - ;; movwf TXREG - ;; movlw .1 - ;; call wait_ms - - ;; movf ADC_SOLAR_C4,w - ;; movwf TXREG - ;; movlw .1 - ;; call wait_ms - - ;; movf ADC_SOLAR_C5,w - ;; movwf TXREG - ;; movlw .1 - ;; call wait_ms - - ;; movf ADC_SOLAR_C6,w - ;; movwf TXREG - ;; movlw .1 - ;; call wait_ms - - ;; movf ADC_SOLAR_C7,w - ;; movwf TXREG - ;; movlw .1 - ;; call wait_ms - + ;; call uart_tx_byte ;; movf ADC_SOLAR_V1,w - ;; movwf TXREG - ;; movlw .1 - ;; call wait_ms + ;; call uart_tx_byte + ;; movf ADC_SOLAR_V2,w + ;; call uart_tx_byte ;; movf SOL_POWERH,w - ;; movwf TXREG - ;; movlw .1 - ;; call wait_ms - + ;; call uart_tx_byte ;; movf SOL_POWERL,w - ;; movwf TXREG - ;; movlw .8 - ;; call wait_ms + ;; call uart_tx_byte ;; goto main @@ -373,58 +323,40 @@ main swapf RTC_TOD3,w call digit - movwf TXREG - movlw .1 - call wait_ms + call uart_tx_byte movf RTC_TOD3,w call digit - movwf TXREG - movlw .1 - call wait_ms + call uart_tx_byte swapf RTC_TOD2,w call digit - movwf TXREG - movlw .1 - call wait_ms + call uart_tx_byte movf RTC_TOD2,w call digit - movwf TXREG - movlw .1 - call wait_ms + call uart_tx_byte swapf RTC_TOD1,w call digit - movwf TXREG - movlw .1 - call wait_ms + call uart_tx_byte movf RTC_TOD1,w call digit - movwf TXREG - movlw .1 - call wait_ms + call uart_tx_byte swapf RTC_TOD0,w call digit - movwf TXREG - movlw .1 - call wait_ms + call uart_tx_byte movf RTC_TOD0,w call digit - movwf TXREG - movlw .1 - call wait_ms + call uart_tx_byte movlw '\r' - movwf TXREG - movlw .1 - call wait_ms + call uart_tx_byte movlw '\n' - movwf TXREG + call uart_tx_byte clrf TMP goto main @@ -438,22 +370,16 @@ main ;; call temp_read_value ;; swapf OWIRE_BYTE,w ;; call digit - ;; movwf TXREG - ;; movlw .1 - ;; call wait_ms + ;; call uart_tx_byte ;; movf OWIRE_BYTE,w ;; call digit - ;; movwf TXREG - ;; movlw .1 - ;; call wait_ms + ;; call uart_tx_byte ;; movlw '\r' - ;; movwf TXREG - ;; movlw .1 - ;; call wait_ms + ;; call uart_tx_byte ;; movlw '\n' - ;; movwf TXREG + ;; call uart_tx_byte ;; clrf TMP ;; goto main |