summaryrefslogtreecommitdiff
path: root/software/ihu
diff options
context:
space:
mode:
authorChristian Pointner <equinox@mur.at>2011-12-10 20:11:53 +0000
committerChristian Pointner <equinox@mur.at>2011-12-10 20:11:53 +0000
commitb866a8ca1f93e270316685d230767d6171cf7892 (patch)
treef3d6cf4bf6446c2f134c25d8acee8dd9fa3fb5fd /software/ihu
parentfilter out 'bad' values (diff)
added solar adc code
git-svn-id: https://svn.spreadspace.org/mur.sat@219 7de4ea59-55d0-425e-a1af-a3118ea81d4c
Diffstat (limited to 'software/ihu')
-rw-r--r--software/ihu/adc.inc175
-rw-r--r--software/ihu/ihu.asm78
2 files changed, 253 insertions, 0 deletions
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 <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
+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'
@@ -306,8 +325,67 @@ 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