From b866a8ca1f93e270316685d230767d6171cf7892 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sat, 10 Dec 2011 20:11:53 +0000 Subject: added solar adc code git-svn-id: https://svn.spreadspace.org/mur.sat@219 7de4ea59-55d0-425e-a1af-a3118ea81d4c --- software/ihu/adc.inc | 175 +++++++++++++++++++++++++++++++++++++++++++++++++++ software/ihu/ihu.asm | 78 +++++++++++++++++++++++ 2 files changed, 253 insertions(+) create mode 100644 software/ihu/adc.inc (limited to 'software') diff --git a/software/ihu/adc.inc b/software/ihu/adc.inc new file mode 100644 index 0000000..7dee1fd --- /dev/null +++ b/software/ihu/adc.inc @@ -0,0 +1,175 @@ + ;; + ;; 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 . + ;; + ;; ------------------------------------- + ;; DEFINES + ;; constants +ADC_SOL_CH0 EQU b'01000001' +ADC_SOL_CH1 EQU b'01000101' +ADC_SOL_CH2 EQU b'01001001' +ADC_SOL_CH3 EQU b'01001101' +ADC_SOL_CH4 EQU b'01010001' +ADC_SOL_CH5 EQU b'01010101' +ADC_SOL_CH6 EQU b'01011001' +ADC_SOL_CH7 EQU b'01011101' +ADC_SOL_CH8 EQU b'01100001' +ADC_SOL_CH9 EQU b'01100101' +ADC_SOL_CHA EQU b'01101001' +ADC_SOL_CHB EQU b'01101101' +ADC_SOL_CHC EQU b'01110001' + + ;; ------------------------------------- +adc_get_solar + movlw ADC_SOL_CH0 + movwf ADCON0 + nop + nop + nop + nop + nop + bsf ADCON0,GO +adc_get_solar_c0 + btfsc ADCON0,GO + goto adc_get_solar_c0 + movf ADRESH,w + movwf ADC_SOLAR_C0 + + movlw ADC_SOL_CH1 + movwf ADCON0 + nop + nop + nop + nop + nop + bsf ADCON0,GO +adc_get_solar_c1 + btfsc ADCON0,GO + goto adc_get_solar_c1 + movf ADRESH,w + movwf ADC_SOLAR_C1 + + movlw ADC_SOL_CH2 + movwf ADCON0 + nop + nop + nop + nop + nop + bsf ADCON0,GO +adc_get_solar_c2 + btfsc ADCON0,GO + goto adc_get_solar_c2 + movf ADRESH,w + movwf ADC_SOLAR_C2 + + movlw ADC_SOL_CH3 + movwf ADCON0 + nop + nop + nop + nop + nop + bsf ADCON0,GO +adc_get_solar_c3 + btfsc ADCON0,GO + goto adc_get_solar_c3 + movf ADRESH,w + movwf ADC_SOLAR_C3 + + movlw ADC_SOL_CH4 + movwf ADCON0 + nop + nop + nop + nop + nop + bsf ADCON0,GO +adc_get_solar_c4 + btfsc ADCON0,GO + goto adc_get_solar_c4 + movf ADRESH,w + movwf ADC_SOLAR_C4 + + movlw ADC_SOL_CH5 + movwf ADCON0 + nop + nop + nop + nop + nop + bsf ADCON0,GO +adc_get_solar_c5 + btfsc ADCON0,GO + goto adc_get_solar_c5 + movf ADRESH,w + movwf ADC_SOLAR_C5 + + movlw ADC_SOL_CH6 + movwf ADCON0 + nop + nop + nop + nop + nop + bsf ADCON0,GO +adc_get_solar_c6 + btfsc ADCON0,GO + goto adc_get_solar_c6 + movf ADRESH,w + movwf ADC_SOLAR_C6 + + movlw ADC_SOL_CH7 + movwf ADCON0 + nop + nop + nop + nop + nop + bsf ADCON0,GO +adc_get_solar_c7 + btfsc ADCON0,GO + goto adc_get_solar_c7 + movf ADRESH,w + movwf ADC_SOLAR_C7 + + movlw ADC_SOL_CH8 + movwf ADCON0 + nop + nop + nop + nop + nop + bsf ADCON0,GO +adc_get_solar_v + btfsc ADCON0,GO + goto adc_get_solar_v + movf ADRESH,w + movwf ADC_SOLAR_V + + return \ No newline at end of file diff --git a/software/ihu/ihu.asm b/software/ihu/ihu.asm index 72ecc32..434ddfb 100644 --- a/software/ihu/ihu.asm +++ b/software/ihu/ihu.asm @@ -99,6 +99,18 @@ DTMF_CS EQU H'0036' BUF EQU H'0040' BUF_END EQU H'004F' +ADC_SOLAR_C0 EQU H'0050' +ADC_SOLAR_C1 EQU H'0051' +ADC_SOLAR_C2 EQU H'0052' +ADC_SOLAR_C3 EQU H'0053' +ADC_SOLAR_C4 EQU H'0054' +ADC_SOLAR_C5 EQU H'0055' +ADC_SOLAR_C6 EQU H'0056' +ADC_SOLAR_C7 EQU H'0057' +ADC_SOLAR_C8 EQU H'0058' +ADC_SOLAR_C9 EQU H'0059' +ADC_SOLAR_V EQU H'005A' + ;; variables ;; page 2 only CALC_ACC0 EQU H'0110' @@ -203,6 +215,8 @@ init bsf STATUS,RP1 movlw b'00000000' movwf BAUDCTL + movlw b'11111111' + movwf ANSEL movlw b'00000111' movwf ANSELH @@ -226,6 +240,9 @@ init movwf TRISC movlw b'10001111' movwf TRISD + movlw b'11111111' + movwf TRISE + clrf ADCON1 movlw b'00100100' movwf TXSTA movlw .12 @@ -238,6 +255,8 @@ init ;; bank 0 bcf STATUS,RP0 bcf STATUS,RP1 + movlw b'01000001' + movwf ADCON0 movlw b'10010000' movwf RCSTA movlw B'01010000' @@ -305,9 +324,68 @@ uart_rx_fe ;; ------------------------------------- include "temp.inc" + ;; ------------------------------------- + include "adc.inc" + ;; ------------------------------------- ;; MAINLOOP main + ;; ADC Test + ;; call adc_get_solar + + ;; movf ADC_SOLAR_C0,w + ;; movwf TXREG + ;; movlw .1 + ;; call wait_ms + + ;; movf ADC_SOLAR_C1,w + ;; movwf TXREG + ;; movlw .1 + ;; call wait_ms + + ;; movf ADC_SOLAR_C2,w + ;; movwf TXREG + ;; movlw .1 + ;; call wait_ms + + ;; movf ADC_SOLAR_C3,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 + + ;; movf ADC_SOLAR_V,w + ;; movwf TXREG + ;; movlw .1 + ;; call wait_ms + + ;; movlw .255 + ;; movwf TXREG + ;; movlw .11 + ;; call wait_ms + + ;; goto main + + ;; DTMF Test program movf TMP,f btfsc STATUS,Z goto main -- cgit v1.2.3