Rev 1219 | Rev 1254 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1219 | Rev 1232 | ||
---|---|---|---|
Line 52... | Line 52... | ||
52 | #include "main.h" |
52 | #include "main.h" |
Line 53... | Line 53... | ||
53 | 53 | ||
54 | unsigned char EEPromArray[E2END+1] EEMEM; |
54 | unsigned char EEPromArray[E2END+1] EEMEM; |
55 | unsigned char PlatinenVersion = 10; |
55 | unsigned char PlatinenVersion = 10; |
- | 56 | unsigned char SendVersionToNavi = 1; |
|
56 | unsigned char SendVersionToNavi = 1; |
57 | unsigned char BattLowVoltageWarning = 94; |
57 | // -- Parametersatz aus EEPROM lesen --- |
58 | // -- Parametersatz aus EEPROM lesen --- |
58 | // number [1..5] |
59 | // number [1..5] |
59 | void ReadParameterSet(unsigned char number, unsigned char *buffer, unsigned char length) |
60 | void ReadParameterSet(unsigned char number, unsigned char *buffer, unsigned char length) |
60 | { |
61 | { |
Line 109... | Line 110... | ||
109 | if(WinkelOut.CalcState > 4) |
110 | if(WinkelOut.CalcState > 4) |
110 | { |
111 | { |
111 | // WinkelOut.CalcState = 0; // in Uart.c |
112 | // WinkelOut.CalcState = 0; // in Uart.c |
112 | beeptime = 1000; |
113 | beeptime = 1000; |
113 | } |
114 | } |
114 | else Piep(WinkelOut.CalcState); |
115 | else Piep(WinkelOut.CalcState,150); |
115 | } |
116 | } |
116 | DebugOut.Analog[19] = WinkelOut.CalcState; |
117 | DebugOut.Analog[19] = WinkelOut.CalcState; |
117 | } |
118 | } |
Line 118... | Line 119... | ||
118 | 119 | ||
Line 140... | Line 141... | ||
140 | DDRC |=0x40; // HEF4017 Reset |
141 | DDRC |=0x40; // HEF4017 Reset |
141 | PORTC = 0xff; // Pullup SDA |
142 | PORTC = 0xff; // Pullup SDA |
142 | DDRB = 0x1B; // LEDs und Druckoffset |
143 | DDRB = 0x1B; // LEDs und Druckoffset |
143 | PORTB = 0x01; // LED_Rot |
144 | PORTB = 0x01; // LED_Rot |
144 | DDRD = 0x3E; // Speaker & TXD & J3 J4 J5 |
145 | DDRD = 0x3E; // Speaker & TXD & J3 J4 J5 |
145 | DDRD |=0x80; // J7 -> Servo signal |
- | |
146 | PORTD = 0x47; // LED |
146 | PORTD = 0x47; // LED |
147 | HEF4017R_ON; |
147 | HEF4017R_ON; |
148 | MCUSR &=~(1<<WDRF); |
148 | MCUSR &=~(1<<WDRF); |
149 | WDTCSR |= (1<<WDCE)|(1<<WDE); |
149 | WDTCSR |= (1<<WDCE)|(1<<WDE); |
150 | WDTCSR = 0; |
150 | WDTCSR = 0; |
Line 151... | Line 151... | ||
151 | 151 | ||
152 | beeptime = 2000; |
- | |
153 | 152 | beeptime = 2000; |
|
154 | StickGier = 0; PPM_in[K_GAS] = 0;StickRoll = 0; StickNick = 0; |
153 | StickGier = 0; PPM_in[K_GAS] = 0;StickRoll = 0; StickNick = 0; |
155 | if(PlatinenVersion >= 20) GIER_GRAD_FAKTOR = 1160; else GIER_GRAD_FAKTOR = 1291; // unterschiedlich für ME und ENC |
154 | if(PlatinenVersion >= 20) GIER_GRAD_FAKTOR = 1160; else GIER_GRAD_FAKTOR = 1291; // unterschiedlich für ME und ENC |
Line 156... | Line 155... | ||
156 | ROT_OFF; |
155 | ROT_OFF; |
Line 200... | Line 199... | ||
200 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
199 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
201 | // + Check connected BL-Ctrls |
200 | // + Check connected BL-Ctrls |
202 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
201 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
203 | printf("\n\rFound BL-Ctrl: "); |
202 | printf("\n\rFound BL-Ctrl: "); |
204 | motorread = 0; UpdateMotor = 0; SendMotorData(); while(!UpdateMotor); motorread = 0; // read the first I2C-Data |
203 | motorread = 0; UpdateMotor = 0; SendMotorData(); while(!UpdateMotor); motorread = 0; // read the first I2C-Data |
- | 204 | timer = SetDelay(2000); |
|
205 | for(i=0; i < MAX_MOTORS; i++) |
205 | for(i=0; i < MAX_MOTORS; i++) |
206 | { |
206 | { |
207 | UpdateMotor = 0; |
207 | UpdateMotor = 0; |
208 | SendMotorData(); |
208 | SendMotorData(); |
209 | while(!UpdateMotor); |
209 | while(!UpdateMotor); |
- | 210 | if(Mixer.Motor[i][0] > 0) // wait max 2 sec for the BL-Ctrls to wake up |
|
- | 211 | { |
|
- | 212 | while(!CheckDelay(timer) && !MotorPresent[i]) {UpdateMotor = 0; SendMotorData(); while(!UpdateMotor);}; |
|
- | 213 | } |
|
210 | if(MotorPresent[i]) printf("%d ",i+1); |
214 | if(MotorPresent[i]) printf("%d ",i+1); |
211 | } |
215 | } |
212 | for(i=0; i < MAX_MOTORS; i++) |
216 | for(i=0; i < MAX_MOTORS; i++) |
213 | { |
217 | { |
214 | if(!MotorPresent[i] && Mixer.Motor[i][0] > 0) printf("\n\r\n\r!! MISSING BL-CTRL: %d !!",i+1); |
218 | if(!MotorPresent[i] && Mixer.Motor[i][0] > 0) printf("\n\r\n\r!! MISSING BL-CTRL: %d !!",i+1); |
Line 282... | Line 286... | ||
282 | 286 | ||
283 | printf("\n\rControl: "); |
287 | printf("\n\rControl: "); |
284 | if (EE_Parameter.GlobalConfig & CFG_HEADING_HOLD) printf("HeadingHold"); |
288 | if (EE_Parameter.GlobalConfig & CFG_HEADING_HOLD) printf("HeadingHold"); |
Line 285... | Line -... | ||
285 | else printf("Normal (ACC-Mode)"); |
- | |
286 | - | ||
287 | printf("\n\r===================================\n\r"); |
289 | else printf("Normal (ACC-Mode)"); |
288 | 290 | ||
289 | LcdClear(); |
291 | LcdClear(); |
- | 292 | I2CTimeout = 5000; |
|
- | 293 | WinkelOut.Orientation = 1; |
|
- | 294 | ||
- | 295 | printf("\n\rBatt:"); |
|
- | 296 | if(EE_Parameter.UnterspannungsWarnung < 50) // automatische Zellenerkennung |
|
- | 297 | { |
|
- | 298 | timer = SetDelay(500); |
|
- | 299 | while (!CheckDelay(timer)); |
|
- | 300 | if(UBat < 130) |
|
- | 301 | { |
|
- | 302 | BattLowVoltageWarning = 3 * EE_Parameter.UnterspannungsWarnung; |
|
- | 303 | Piep(3,200); |
|
- | 304 | printf(" 3 Cells "); |
|
- | 305 | } |
|
- | 306 | else |
|
- | 307 | { |
|
- | 308 | BattLowVoltageWarning = 4 * EE_Parameter.UnterspannungsWarnung; |
|
- | 309 | Piep(4,200); |
|
- | 310 | printf(" 4 Cells "); |
|
- | 311 | } |
|
- | 312 | } |
|
- | 313 | else BattLowVoltageWarning = EE_Parameter.UnterspannungsWarnung; |
|
290 | I2CTimeout = 5000; |
314 | printf(" Low warning level: %d.%d",BattLowVoltageWarning/10,BattLowVoltageWarning%10); |
291 | WinkelOut.Orientation = 1; |
315 | printf("\n\r===================================\n\r"); |
292 | while (1) |
316 | while (1) |
293 | { |
317 | { |
294 | if(UpdateMotor && AdReady) // ReglerIntervall |
318 | if(UpdateMotor && AdReady) // ReglerIntervall |
Line 305... | Line 329... | ||
305 | ExternStickNick = 0; |
329 | ExternStickNick = 0; |
306 | ExternStickRoll = 0; |
330 | ExternStickRoll = 0; |
307 | ExternStickGier = 0; |
331 | ExternStickGier = 0; |
308 | } |
332 | } |
309 | if(SenderOkay) SenderOkay--; |
333 | if(SenderOkay) SenderOkay--; |
- | 334 | else |
|
- | 335 | { |
|
- | 336 | TIMSK1 |= _BV(ICIE1); // enable PPM-Input |
|
- | 337 | } |
|
- | 338 | //if(HoehenReglerAktiv && NaviDataOkay && SenderOkay < 160 && SenderOkay > 10 && FromNaviCtrl_Value.SerialDataOkay > 220) SenderOkay = 160; |
|
- | 339 | //if(HoehenReglerAktiv && NaviDataOkay && SenderOkay < 101 && SenderOkay > 10 && FromNaviCtrl_Value.SerialDataOkay > 1) SenderOkay = 101; |
|
310 | if(NaviDataOkay) |
340 | if(NaviDataOkay) |
311 | { |
341 | { |
312 | if(--NaviDataOkay == 0) |
342 | if(--NaviDataOkay == 0) |
313 | { |
343 | { |
314 | GPS_Nick = 0; |
344 | GPS_Nick = 0; |
Line 338... | Line 368... | ||
338 | BearbeiteRxDaten(); |
368 | BearbeiteRxDaten(); |
339 | } |
369 | } |
340 | else BearbeiteRxDaten(); |
370 | else BearbeiteRxDaten(); |
341 | if(CheckDelay(timer)) |
371 | if(CheckDelay(timer)) |
342 | { |
372 | { |
343 | if(UBat < EE_Parameter.UnterspannungsWarnung) |
373 | if(UBat < BattLowVoltageWarning) |
344 | { |
374 | { |
345 | if(BeepMuster == 0xffff) |
375 | if(BeepMuster == 0xffff) |
346 | { |
376 | { |
347 | beeptime = 6000; |
377 | beeptime = 6000; |
348 | BeepMuster = 0x0300; |
378 | BeepMuster = 0x0300; |
Line 359... | Line 389... | ||
359 | } |
389 | } |
360 | return (1); |
390 | return (1); |
361 | } |
391 | } |
Line 362... | Line -... | ||
362 | - | ||
363 | - |