diff options
Diffstat (limited to 'software/ihu/temp.inc')
-rw-r--r-- | software/ihu/temp.inc | 154 |
1 files changed, 154 insertions, 0 deletions
diff --git a/software/ihu/temp.inc b/software/ihu/temp.inc new file mode 100644 index 0000000..63eab26 --- /dev/null +++ b/software/ihu/temp.inc @@ -0,0 +1,154 @@ + ;; + ;; mur.sat + ;; + ;; Somewhen in the year 2011, mur.at will have a nano satellite launched + ;; into a low earth orbit (310 km above the surface of our planet). The + ;; satellite itself is a TubeSat personal satellite kit, developed and + ;; launched by interorbital systems. mur.sat is a joint venture of mur.at, + ;; ESC im Labor and realraum. + ;; + ;; Please visit the project hompage at sat.mur.at for further information. + ;; + ;; + ;; Copyright (C) 2011 Christian Pointner <equinox@mur.at> + ;; + ;; This file is part of mur.sat. + ;; + ;; mur.sat is free software: you can redistribute it and/or modify + ;; it under the terms of the GNU General Public License as published by + ;; the Free Software Foundation, either version 3 of the License, or + ;; any later version. + ;; + ;; mur.sat is distributed in the hope that it will be useful, + ;; but WITHOUT ANY WARRANTY; without even the implied warranty of + ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + ;; GNU General Public License for more details. + ;; + ;; You should have received a copy of the GNU General Public License + ;; along with mur.sat. If not, see <http://www.gnu.org/licenses/>. + ;; + ;; ------------------------------------- + ;; DEFINES + ;; constants +TEMP_CMD_R_TEMP EQU H'AA' +TEMP_CMD_START EQU H'EE' +TEMP_CMD_STOP EQU H'22' +TEMP_CMD_W_TH EQU H'01' +TEMP_CMD_W_TL EQU H'02' +TEMP_CMD_R_TH EQU H'A1' +TEMP_CMD_R_TL EQU H'A2' +TEMP_CMD_W_STAT EQU H'0C' +TEMP_CMD_R_STAT EQU H'AC' +TEMP_CMD_R_CNT EQU H'A0' +TEMP_CMD_L_CNT EQU H'41' + + ;; ------------------------------------- +owire_presence + bsf STATUS,RP0 + bcf TRISA,OWIRE + movlw .161 + movwf OWIRE_CNT +owire_presence_loop + decfsz OWIRE_CNT,f + goto owire_presence_loop + bsf TRISA,OWIRE + bcf STATUS,RP0 + movlw .21 + movwf OWIRE_CNT +owire_response_loop1 + decfsz OWIRE_CNT,f + goto owire_response_loop1 + swapf PORTA,w + andlw b'00000001' + movwf OWIRE_BYTE + movlw .138 + movwf OWIRE_CNT +owire_response_loop + decfsz OWIRE_CNT,f + goto owire_response_loop + return + + ;; ------------------------------------- + ;; ------------------ +owire_write1 + bsf STATUS,RP0 + bcf TRISA,OWIRE + nop + bsf TRISA,OWIRE + bcf STATUS,RP0 + movlw .20 + movwf OWIRE_CNT +owire_write1_loop + decfsz OWIRE_CNT,f + goto owire_write1_loop + return + + ;; ------------------------------------- +owire_write0 + bsf STATUS,RP0 + bcf TRISA,OWIRE + movlw .21 + movwf OWIRE_CNT +owire_write0_loop + decfsz OWIRE_CNT,f + goto owire_write0_loop + bsf TRISA,OWIRE + bcf STATUS,RP0 + return + + ;; ------------------------------------- +owire_write_byte + movwf OWIRE_BYTE + movlw .8 + movwf OWIRE_BIT_CNT +owire_write_loop + btfss OWIRE_BYTE,0 + call owire_write0 + btfsc OWIRE_BYTE,0 + call owire_write1 + rrf OWIRE_BYTE,f + decfsz OWIRE_BIT_CNT,f + goto owire_write_loop + return + + ;; ------------------------------------- +owire_readbit + return + + ;; ------------------------------------- +owire_read_byte + return + + ;; ------------------------------------- +temp_init + call owire_presence + ;; btfsc OWIRE_BYTE,0 + ;; goto temp_init_error + + movlw b'10101010' + call owire_write_byte + movlw b'01010101' + call owire_write_byte + movlw b'11001100' + call owire_write_byte + movlw b'00001111' + call owire_write_byte + movlw b'00111100' + call owire_write_byte + + + movlw '.' + movwf TXREG + return + +temp_init_error + movlw 'E' + movwf TXREG + return + + ;; ------------------------------------- +temp_read_value + ;; TODO: implement this + return + + ;; ------------------------------------- |