Subversion Repositories FlightCtrl

Rev

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);