;; ;; 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 ;; ;; 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 . ;; ;; ------------------------------------- ttx_send_byte bsf STATUS,RP0 bcf TRISD,TTX_SDA bcf STATUS,RP0 movwf TTX_BYTE xorwf TTX_CSUM,f movlw .8 movwf TTX_BIT_CNT ttx_send_next_bit btfsc TTX_BYTE,7 bsf PORTD,TTX_SDA btfss TTX_BYTE,7 bcf PORTD,TTX_SDA bsf PORTD,TTX_SCL nop nop nop bcf PORTD,TTX_SCL nop nop nop nop rlf TTX_BYTE,f decfsz TTX_BIT_CNT,f goto ttx_send_next_bit bsf STATUS,RP0 bsf TRISD,TTX_SDA bcf STATUS,RP0 return ;; ------------------------------------- ttx_recv_byte movlw .8 movwf TTX_BIT_CNT ttx_recv_next_bit bsf PORTD,TTX_SCL nop nop nop bcf PORTD,TTX_SCL nop nop nop nop nop rlf TTX_BYTE,f btfsc PORTD,TTX_SDA bsf TTX_BYTE,0 btfss PORTD,TTX_SDA bcf TTX_BYTE,0 decfsz TTX_BIT_CNT,f goto ttx_recv_next_bit return ;; ------------------------------------- ttx_break movlw .13 movwf TTX_BIT_CNT ttx_wait_octet decfsz TTX_BIT_CNT,f goto ttx_wait_octet return ;; ------------------------------------- ttx_send_frame movwf TTX_BYTE andlw b'00001111' movwf TTX_BYTE_CNT bsf PORTD,TTX_SCL movlw .3 bcf PORTD,TTX_SCL call wait_ms clrf TTX_CSUM movf TTX_BYTE,w call ttx_send_byte movf TTX_BYTE_CNT,f btfsc STATUS,Z return ttx_next_byte call ttx_break movf INDF,w call ttx_send_byte incf FSR,f decfsz TTX_BYTE_CNT,f goto ttx_next_byte call ttx_break call ttx_recv_byte movf TTX_BYTE,w xorwf TTX_CSUM,w btfss STATUS,Z goto ttx_csum_error movlw '.' movwf TXREG return ttx_csum_error movlw 'E' movwf TXREG return ;; -------------------------------------