summaryrefslogtreecommitdiff
path: root/software/ihu/adc.inc
blob: c115371137104add43227816e0f7e3d5b97bbf55 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
  ;;
  ;;  mur.sat
  ;;
  ;;  Somewhen in the year 20xx, 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-2015 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_V0
  movwf     ADC_SOLAR_V1

  return