1 | '--------------------------------------------------------------------------
|
2 | ' Compilerinstruktionen und Compilerdirektiven
|
3 | '--------------------------------------------------------------------------
|
4 |
|
5 | $regfile = "m128def.dat"
|
6 | $crystal = 16000000
|
7 | $hwstack = 64
|
8 | $swstack = 64
|
9 | $framesize = 64
|
10 | $baud = 9600
|
11 |
|
12 | '--------------------------------------------------------------------------
|
13 | ' Definition von Ressourcen
|
14 | '--------------------------------------------------------------------------
|
15 |
|
16 | Pwr_all Alias Portg.0 ' Relais 12 Volt für alles
|
17 | Pwr_tft Alias Portg.1
|
18 | Pwr_video Alias Portb.7
|
19 | Pwr_xbee Alias Porte.2
|
20 | Pwr_gps Alias Portc.6
|
21 |
|
22 | Pwr_lcd Alias Portg.3 ' LCD GND
|
23 |
|
24 | Tft1 Alias Portb.5
|
25 | Tft2 Alias Portb.3
|
26 | Tft3 Alias Portb.1
|
27 | Tft4 Alias Porte.7
|
28 | Tft5 Alias Porte.5
|
29 |
|
30 | Led_gruen Alias Portd.6 ' link-LED
|
31 |
|
32 | Ledduo_rot Alias Portd.5 ' Duo-LED für Battery-Status rot und grüen
|
33 | Ledduo_gruen Alias Portd.7
|
34 |
|
35 | Lcd_led Alias Porte.3 ' LCD-Beleuchtung
|
36 |
|
37 | Bit0 Alias Portd.1
|
38 | Bit1 Alias Portd.4
|
39 | Bit2 Alias Portd.0
|
40 |
|
41 | Piezo Alias Portg.4 ' Piezo
|
42 |
|
43 | Joy_taster_rechts Alias Pinf.0 ' Taster Joystick rechts
|
44 | Joy_taster_links Alias Pinf.2 ' Taster Joystick links
|
45 |
|
46 |
|
47 |
|
48 | '--------------------------------------------------------------------------
|
49 | ' Definition von Konstanten
|
50 | '--------------------------------------------------------------------------
|
51 |
|
52 | Const Adc_multi = 0.0048828125 ' = 5.0 / 1024.0 -> ADC auflösen
|
53 | Const Timerstartwert1 = 36735
|
54 |
|
55 |
|
56 | '--------------------------------------------------------------------------
|
57 | ' Definition von Variablen und Datentypen
|
58 | '--------------------------------------------------------------------------
|
59 |
|
60 | '---- Command senden ----
|
61 | Dim Cmd As Byte
|
62 |
|
63 | '---- Betriebsspannung messen ----
|
64 | Dim Spannung As Word
|
65 | Dim Battery_orig As Single
|
66 | Dim Battery As String * 5
|
67 |
|
68 | '---- Commands einlesen ----
|
69 | Dim Dollarzeicheneingang As Byte 'Beginn des Datenstrings mit Dollarzeichen
|
70 | Dim Teildaten(14) As String * 20 ' Array mit den extrahierten Daten
|
71 | Dim Anzahl As Byte
|
72 | Dim Datenstring As String * 40
|
73 | Dim Datenkopf As String * 7
|
74 |
|
75 | '---- LCD Darstellung ----
|
76 | Dim Lcd_command As String * 20
|
77 | Dim Lcd_voltage As String * 20
|
78 | Dim Lcd_temperatur As String * 20
|
79 | Dim Lcd_gps As String * 20
|
80 |
|
81 | '---- Link-Flag ----
|
82 | Dim Connect As Bit
|
83 |
|
84 | '---- GPS RS232 TTl einlesen ----
|
85 | Dim Gelesen As Byte 'eingelesenes Zeichen
|
86 |
|
87 | Dim Teilstring(14) As String * 12
|
88 | Dim Anzahl2 As Byte
|
89 | Dim Gpsdaten As String * 98
|
90 | Dim Header As String * 6
|
91 | Dim Stunde As Byte
|
92 | Dim Tempstring As String * 2
|
93 |
|
94 | '---- Sekundenzähler/Timer ---
|
95 | Dim Sec1 As Word ' Variable für Timer1
|
96 | Dim Sec0 As Word
|
97 |
|
98 | '---- ADC Joysticks ----
|
99 | Dim Joy_links_y As Word ' Y-Achse LINKS
|
100 | Dim Joy_links_x As Word ' X-Achse LINKS
|
101 |
|
102 | Dim Joy_rechts_y As Word ' Y-Achse RECHTS
|
103 | Dim Joy_rechts_x As Word ' X-Achse RECHTS
|
104 |
|
105 |
|
106 | '---- LCd Menü ----
|
107 |
|
108 |
|
109 | '--------------------------------------------------------------------------
|
110 | ' Konfiguration und Basiseinstellungen
|
111 | '--------------------------------------------------------------------------
|
112 |
|
113 | '---- RS232 Software GPS ----
|
114 | ' RS232 Hardware
|
115 | Config Serialin = Buffered , Size = 110 ' konfig serial in
|
116 | Open "COMC.0:9600,8,N,1" For Input As #1 ' PC.2 = RxD SoftUART / GPS
|
117 | Open "COMC.2:9600,8,N,1" For Output As #2 ' PC.3 = TxD SoftUART / GPS
|
118 |
|
119 | '---- ADC ----
|
120 | Config Adc = Single , Prescaler = Auto , Reference = Avcc 'ADC Wandler definieren
|
121 |
|
122 | '---- Timer ----
|
123 | Config Timer1 = Timer , Prescale = 256 ' für zähler Timer1 konfigurieren
|
124 |
|
125 | Config Timer3 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1 ' für led und kontrast timer3
|
126 |
|
127 |
|
128 | '---- Outputs ----
|
129 | Config Pwr_all = Output
|
130 | Config Pwr_video = Output
|
131 | Config Pwr_tft = Output
|
132 | Config Pwr_xbee = Output
|
133 | Config Pwr_gps = Output
|
134 | Config Pwr_lcd = Output
|
135 | Config Led_gruen = Output
|
136 | Config Ledduo_rot = Output
|
137 | Config Ledduo_gruen = Output
|
138 | Config Lcd_led = Output
|
139 | Config Bit0 = Output
|
140 | Config Bit1 = Output
|
141 | Config Bit2 = Output
|
142 | Config Tft1 = Output
|
143 | Config Tft2 = Output
|
144 | Config Tft3 = Output
|
145 | Config Tft4 = Output
|
146 | Config Tft5 = Output
|
147 |
|
148 | '---- Joysticks ----
|
149 | Config Joy_taster_links = Input
|
150 | Config Joy_taster_rechts = Input
|
151 |
|
152 |
|
153 |
|
154 |
|
155 |
|
156 |
|
157 |
|
158 |
|
159 | Pwr_lcd = 0 ' LCD einschalten
|
160 |
|
161 | Wait 2
|
162 |
|
163 | '---- LCD ----
|
164 | Config Lcd = 20 * 4
|
165 | Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.0 , Db6 = Porte.6 , Db7 = Porte.4 , E = Portb.4 , Rs = Portb.6
|
166 | Cursor Off
|
167 |
|
168 | Deflcdchar 0 , 32 , 32 , 21 , 14 , 4 , 4 , 4 , 4 ' Link-Zeichen
|
169 | Deflcdchar 1 , 32 , 14 , 31 , 31 , 31 , 31 , 31 , 31 ' battery-full
|
170 | Deflcdchar 2 , 32 , 14 , 31 , 17 , 17 , 31 , 31 , 31 ' battery-half
|
171 | Deflcdchar 3 , 32 , 14 , 31 , 17 , 17 , 17 , 17 , 31 ' battery empty
|
172 |
|
173 | '---- Interrupts ----
|
174 | Enable Interrupts
|
175 | Enable Timer1
|
176 | Enable Timer3
|
177 |
|
178 | On Timer1 Timer1_isr
|
179 |
|
180 | Start Adc
|
181 |
|
182 |
|
183 | '--------------------------------------------------------------------------
|
184 | ' Init
|
185 | '--------------------------------------------------------------------------
|
186 |
|
187 | Pwr_all = 1 ' Relais für POWER ON einschalten
|
188 |
|
189 | Waitms 250
|
190 |
|
191 | Bit0 = 1 ' Kanal für 5,8 Ghz alles zunächst high
|
192 | Bit1 = 1
|
193 | Bit2 = 1
|
194 |
|
195 | Pwr_xbee = 1 ' XBee einschalten ON
|
196 | Pwr_gps = 1 ' GPS Modul einschalten ON
|
197 |
|
198 | Led_gruen = 1 ' Led-grün OFF
|
199 | Ledduo_rot = 0 ' Duo-LEDs OFF
|
200 | Ledduo_gruen = 0
|
201 |
|
202 |
|
203 |
|
204 | '
|
205 | Lcd_led = 0 ' LCD-Beleuchtung ON
|
206 |
|
207 | Connect = 0 ' connect-flag = 0
|
208 |
|
209 | Sec1 = 0 ' sec1-Zähler = 0
|
210 | Battery_orig = 12 ' zunächst von voller Batterie 12 Volt ausgehen
|
211 |
|
212 | Tft1 = 1
|
213 | Tft2 = 1
|
214 | Tft3 = 1
|
215 | Tft4 = 1
|
216 | Tft5 = 1
|
217 |
|
218 |
|
219 |
|
220 | Pwr_tft = 1 ' TFT einschalten ON
|
221 |
|
222 |
|
223 | Pwr_video = 0 '1 ' 5,8 Ghz einschalten ON
|
224 |
|
225 |
|
226 |
|
227 | Sound Piezo , 220 , 227
|
228 | Waitms 125
|
229 | Sound Piezo , 220 , 227
|
230 | Waitms 125
|
231 | Sound Piezo , 220 , 227
|
232 | Waitms 125
|
233 |
|
234 | Wait 1
|
235 |
|
236 | ' Begrüßung
|
237 | Cls
|
238 | Cursor Off
|
239 |
|
240 | Locate 1 , 1
|
241 | Lcd "KaprigControlRxZ1"
|
242 | Locate 2 , 1
|
243 | Lcd "KaprigControlRxZ2"
|
244 | Locate 3 , 1
|
245 | Lcd "KaprigControlRxZ3"
|
246 | Locate 4 , 1
|
247 | Lcd "KaprigControlRxZ4"
|
248 |
|
249 |
|
250 |
|
251 | '--------------------------------------------------------------------------
|
252 | ' Hauptprogramm
|
253 | '--------------------------------------------------------------------------
|
254 |
|
255 | Cls
|
256 |
|
257 | Do
|
258 | Loop
|
259 | End
|