Rev 1424 | Rev 1435 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1424 | Rev 1431 | ||
---|---|---|---|
Line 192... | Line 192... | ||
192 | rc_sum_init(); |
192 | rc_sum_init(); |
193 | ADC_Init(); |
193 | ADC_Init(); |
194 | i2c_init(); |
194 | i2c_init(); |
195 | SPI_MasterInit(); |
195 | SPI_MasterInit(); |
Line 196... | Line 196... | ||
196 | 196 | ||
- | 197 | InitFC(); |
|
Line 197... | Line -... | ||
197 | InitFC(); |
- | |
198 | - | ||
199 | sei(); |
- | |
200 | printf("\n\r==================================="); |
- | |
201 | printf("\n\rFlightControl\n\rHardware:%d.%d\n\rSoftware:V%d.%d%c ",PlatinenVersion/10,PlatinenVersion%10, VERSION_MAJOR, VERSION_MINOR,VERSION_PATCH + 'a'); |
- | |
202 | printf("\n\rthe use of this software is only permitted \n\ron original MikroKopter-Hardware"); |
- | |
203 | printf("\n\rwww.MikroKopter.de (c) HiSystems GmbH"); |
- | |
204 | printf("\n\r==================================="); |
198 | |
- | 199 | ||
- | 200 | GRN_ON; |
|
205 | 201 | sei(); |
|
- | 202 | ||
- | 203 | ReadParameterSet(3, (unsigned char *) &EE_Parameter.Kanalbelegung[0], 13); // read only the first bytes |
|
206 | GRN_ON; |
204 | |
207 | ReadParameterSet(3, (unsigned char *) &EE_Parameter.Kanalbelegung[0], 13); // read only the first bytes |
205 | |
208 | if((eeprom_read_byte(&EEPromArray[EEPROM_ADR_MIXER_TABLE]) == MIXER_REVISION) && // Check Revision in the first Byte |
206 | if((eeprom_read_byte(&EEPromArray[EEPROM_ADR_MIXER_TABLE]) == MIXER_REVISION) && // Check Revision in the first Byte |
209 | (eeprom_read_byte(&EEPromArray[EEPROM_ADR_VALID]) != 0xff)) // Settings reset via Koptertool |
207 | (eeprom_read_byte(&EEPromArray[EEPROM_ADR_VALID]) != 0xff)) // Settings reset via Koptertool |
210 | { |
208 | { |
Line 226... | Line 224... | ||
226 | Mixer.Revision = MIXER_REVISION; |
224 | Mixer.Revision = MIXER_REVISION; |
227 | memcpy(Mixer.Name, "Quadro\0", 11); |
225 | memcpy(Mixer.Name, "Quadro\0", 11); |
228 | eeprom_write_block(&Mixer, &EEPromArray[EEPROM_ADR_MIXER_TABLE], sizeof(Mixer)); |
226 | eeprom_write_block(&Mixer, &EEPromArray[EEPROM_ADR_MIXER_TABLE], sizeof(Mixer)); |
229 | } |
227 | } |
230 | printf("\n\rMixer-Config: '%s' (%u Motors)",Mixer.Name,RequiredMotors); |
228 | printf("\n\rMixer-Config: '%s' (%u Motors)",Mixer.Name,RequiredMotors); |
- | 229 | ||
- | 230 | ||
- | 231 | ||
231 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
232 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
232 | // + Check connected BL-Ctrls |
233 | // + Check connected BL-Ctrls |
233 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
234 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
234 | printf("\n\rFound BL-Ctrl: "); |
235 | printf("\n\rFound BL-Ctrl: "); |
235 | motorread = 0; UpdateMotor = 0; SendMotorData(); while(!UpdateMotor); motorread = 0; // read the first I2C-Data |
236 | motorread = 0; UpdateMotor = 0; SendMotorData(); while(!UpdateMotor); motorread = 0; // read the first I2C-Data |
Line 311... | Line 312... | ||
311 | WriteParameterSet(i, (unsigned char *) &EE_Parameter.Kanalbelegung[0], STRUCT_PARAM_LAENGE); |
312 | WriteParameterSet(i, (unsigned char *) &EE_Parameter.Kanalbelegung[0], STRUCT_PARAM_LAENGE); |
312 | } |
313 | } |
313 | SetActiveParamSetNumber(3); // default-Setting |
314 | SetActiveParamSetNumber(3); // default-Setting |
314 | eeprom_write_byte(&EEPromArray[EEPROM_ADR_VALID], EE_DATENREVISION); |
315 | eeprom_write_byte(&EEPromArray[EEPROM_ADR_VALID], EE_DATENREVISION); |
315 | } |
316 | } |
- | 317 | ||
316 | 318 | ||
- | 319 | ||
317 | FlugMinuten = (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_MINUTES2]) * 256 + (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_MINUTES2+1]); |
320 | FlugMinuten = (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_MINUTES2]) * 256 + (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_MINUTES2+1]); |
318 | FlugMinutenGesamt = (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_MINUTES]) * 256 + (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_MINUTES+1]); |
321 | FlugMinutenGesamt = (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_MINUTES]) * 256 + (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_MINUTES+1]); |
319 | if(FlugMinutenGesamt == 0xffff || FlugMinuten == 0xffff) |
322 | if(FlugMinutenGesamt == 0xffff || FlugMinuten == 0xffff) |
320 | { |
323 | { |
321 | FlugMinuten = 0; |
324 | FlugMinuten = 0; |
Line 355... | Line 358... | ||
355 | 358 | ||
356 | LcdClear(); |
359 | LcdClear(); |
357 | I2CTimeout = 5000; |
360 | I2CTimeout = 5000; |
358 | WinkelOut.Orientation = 1; |
361 | WinkelOut.Orientation = 1; |
- | 362 | LipoDetection(1); |
|
- | 363 | ||
359 | LipoDetection(1); |
364 | InitReceiver(); |
360 | printf("\n\r===================================\n\r"); |
365 | printf("\n\r===================================\n\r"); |
361 | //SpektrumBinding(); |
366 | //SpektrumBinding(); |
362 | timer = SetDelay(2000); |
367 | timer = SetDelay(2000); |
363 | timerPolling = SetDelay(250); |
368 | timerPolling = SetDelay(250); |