Subversion Repositories FlightCtrl

Rev

Rev 1077 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1077 Rev 1078
Line 74... Line 74...
74
 ParamSet.ServoNickMax = 150;         // Wert : 0-250     // Anschlag
74
        ParamSet.ServoNickMax = 150;         // Wert : 0-250     // Anschlag
75
 ParamSet.ServoNickRefresh = 5;
75
        ParamSet.ServoNickRefresh = 5;
76
 ParamSet.LoopGasLimit = 50;
76
        ParamSet.LoopGasLimit = 50;
77
 ParamSet.LoopThreshold = 90;         // Wert: 0-250  Schwelle für Stickausschlag
77
        ParamSet.LoopThreshold = 90;         // Wert: 0-250  Schwelle für Stickausschlag
78
 ParamSet.LoopHysteresis = 50;
78
        ParamSet.LoopHysteresis = 50;
79
 ParamSet.LoopConfig = 0;             // Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt
79
        ParamSet.BitConfig = 0;             // Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt
80
 ParamSet.Yaw_PosFeedback = 90;
80
        ParamSet.Yaw_PosFeedback = 90;
81
 ParamSet.Yaw_NegFeedback = 5;
81
        ParamSet.Yaw_NegFeedback = 5;
82
 ParamSet.AngleTurnOverNick = 85;
82
        ParamSet.AngleTurnOverNick = 85;
83
 ParamSet.AngleTurnOverRoll = 85;
83
        ParamSet.AngleTurnOverRoll = 85;
84
 ParamSet.GyroAccTrim = 16;        // 1/k
84
        ParamSet.GyroAccTrim = 16;        // 1/k
Line 94... Line 94...
94
 ParamSet.NaviGpsI = 90;
94
        ParamSet.NaviGpsI = 90;
95
 ParamSet.NaviGpsD = 90;
95
        ParamSet.NaviGpsD = 90;
96
 ParamSet.NaviGpsACC = 0;
96
        ParamSet.NaviGpsACC = 0;
97
 ParamSet.NaviGpsMinSat = 6;
97
        ParamSet.NaviGpsMinSat = 6;
98
 ParamSet.NaviStickThreshold = 8;
98
        ParamSet.NaviStickThreshold = 8;
-
 
99
        ParamSet.NaviWindCorrection = 90;
-
 
100
        ParamSet.NaviSpeedCompensation = 30;
-
 
101
        ParamSet.NaviOperatingRadius = 100;
-
 
102
        ParamSet.NaviAngleLimitation = 60;
99
 memcpy(ParamSet.Name, "Sport\0",6);
103
        memcpy(ParamSet.Name, "Sport\0",6);
100
}
104
}
Line 101... Line 105...
101
 
105
 
Line 149... Line 153...
149
 ParamSet.ServoNickMax = 150;         // Wert : 0-250     // Anschlag
153
        ParamSet.ServoNickMax = 150;         // Wert : 0-250     // Anschlag
150
 ParamSet.ServoNickRefresh = 5;
154
        ParamSet.ServoNickRefresh = 5;
151
 ParamSet.LoopGasLimit = 50;
155
        ParamSet.LoopGasLimit = 50;
152
 ParamSet.LoopThreshold = 90;         // Wert: 0-250  Schwelle für Stickausschlag
156
        ParamSet.LoopThreshold = 90;         // Wert: 0-250  Schwelle für Stickausschlag
153
 ParamSet.LoopHysteresis = 50;
157
        ParamSet.LoopHysteresis = 50;
154
 ParamSet.LoopConfig = 0;             // Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts
158
        ParamSet.BitConfig = 0;             // Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts
155
 ParamSet.Yaw_PosFeedback = 90;        // Faktor, mit dem Yaw die Achsen Roll und Nick verkoppelt
159
        ParamSet.Yaw_PosFeedback = 90;        // Faktor, mit dem Yaw die Achsen Roll und Nick verkoppelt
156
 ParamSet.Yaw_NegFeedback = 5;
160
        ParamSet.Yaw_NegFeedback = 5;
157
 ParamSet.AngleTurnOverNick = 85;
161
        ParamSet.AngleTurnOverNick = 85;
158
 ParamSet.AngleTurnOverRoll = 85;
162
        ParamSet.AngleTurnOverRoll = 85;
159
 ParamSet.GyroAccTrim = 32;        // 1/k
163
        ParamSet.GyroAccTrim = 32;        // 1/k
Line 169... Line 173...
169
 ParamSet.NaviGpsI = 90;
173
        ParamSet.NaviGpsI = 90;
170
 ParamSet.NaviGpsD = 90;
174
        ParamSet.NaviGpsD = 90;
171
 ParamSet.NaviGpsACC = 0;
175
        ParamSet.NaviGpsACC = 0;
172
 ParamSet.NaviGpsMinSat = 6;
176
        ParamSet.NaviGpsMinSat = 6;
173
 ParamSet.NaviStickThreshold = 8;
177
        ParamSet.NaviStickThreshold = 8;
-
 
178
        ParamSet.NaviWindCorrection = 90;
-
 
179
        ParamSet.NaviSpeedCompensation = 30;
-
 
180
        ParamSet.NaviOperatingRadius = 100;
-
 
181
        ParamSet.NaviAngleLimitation = 60;
174
 memcpy(ParamSet.Name, "Normal\0", 7);
182
        memcpy(ParamSet.Name, "Normal\0", 7);
175
}
183
}
Line 176... Line 184...
176
 
184
 
Line 224... Line 232...
224
 ParamSet.ServoNickMax = 150;         // Wert : 0-250     // Anschlag
232
        ParamSet.ServoNickMax = 150;         // Wert : 0-250     // Anschlag
225
 ParamSet.ServoNickRefresh = 5;
233
        ParamSet.ServoNickRefresh = 5;
226
 ParamSet.LoopGasLimit = 50;
234
        ParamSet.LoopGasLimit = 50;
227
 ParamSet.LoopThreshold = 90;         // Wert: 0-250  Schwelle für Stickausschlag
235
        ParamSet.LoopThreshold = 90;         // Wert: 0-250  Schwelle für Stickausschlag
228
 ParamSet.LoopHysteresis = 50;
236
        ParamSet.LoopHysteresis = 50;
229
 ParamSet.LoopConfig = 0;             // Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts
237
        ParamSet.BitConfig = 0;             // Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts
230
 ParamSet.Yaw_PosFeedback = 90;        // Faktor, mit dem Yaw die Achsen Roll und Nick verkoppelt
238
        ParamSet.Yaw_PosFeedback = 90;        // Faktor, mit dem Yaw die Achsen Roll und Nick verkoppelt
231
 ParamSet.Yaw_NegFeedback = 5;
239
        ParamSet.Yaw_NegFeedback = 5;
232
 ParamSet.AngleTurnOverNick = 85;
240
        ParamSet.AngleTurnOverNick = 85;
233
 ParamSet.AngleTurnOverRoll = 85;
241
        ParamSet.AngleTurnOverRoll = 85;
234
 ParamSet.GyroAccTrim = 32;        // 1/k
242
        ParamSet.GyroAccTrim = 32;        // 1/k
Line 244... Line 252...
244
 ParamSet.NaviGpsI = 90;
252
        ParamSet.NaviGpsI = 90;
245
 ParamSet.NaviGpsD = 90;
253
        ParamSet.NaviGpsD = 90;
246
 ParamSet.NaviGpsACC = 0;
254
        ParamSet.NaviGpsACC = 0;
247
 ParamSet.NaviGpsMinSat = 6;
255
        ParamSet.NaviGpsMinSat = 6;
248
 ParamSet.NaviStickThreshold = 8;
256
        ParamSet.NaviStickThreshold = 8;
-
 
257
        ParamSet.NaviWindCorrection = 90;
-
 
258
        ParamSet.NaviSpeedCompensation = 30;
-
 
259
        ParamSet.NaviOperatingRadius = 100;
-
 
260
        ParamSet.NaviAngleLimitation = 60;
249
 memcpy(ParamSet.Name, "Beginner\0", 9);
261
        memcpy(ParamSet.Name, "Beginner\0", 9);
250
}
262
}
Line 251... Line 263...
251
 
263
 
252
/***************************************************/
264
/***************************************************/
Line 283... Line 295...
283
 
295
 
284
 
296
 
285
/***************************************************/
297
/***************************************************/
286
/*       Read Parameter Set from EEPROM            */
298
/*       Read Parameter Set from EEPROM            */
287
/***************************************************/
299
/***************************************************/
288
// number [0..5]
300
// number [1..5]
289
void ParamSet_ReadFromEEProm(uint8_t setnumber)
301
void ParamSet_ReadFromEEProm(uint8_t setnumber)
290
{
302
{
291
   if (setnumber > 5) setnumber = 5;
303
        if((1 > setnumber) || (setnumber > 5)) setnumber = 3;
292
   eeprom_read_block((uint8_t *) &ParamSet.ChannelAssignment[0], &EEPromArray[EEPROM_ADR_PARAMSET_BEGIN + PARAMSET_STRUCT_LEN * setnumber], PARAMSET_STRUCT_LEN);
304
        eeprom_read_block((uint8_t *) &ParamSet.ChannelAssignment[0], &EEPromArray[EEPROM_ADR_PARAMSET_BEGIN + PARAMSET_STRUCT_LEN * (setnumber - 1)], PARAMSET_STRUCT_LEN);
Line 293... Line 305...
293
   LED_Init();
305
        LED_Init();
294
}
306
}
295
 
307
 
296
/***************************************************/
308
/***************************************************/
297
/*        Write Parameter Set to EEPROM            */
309
/*        Write Parameter Set to EEPROM            */
298
/***************************************************/
310
/***************************************************/
299
// number [0..5]
311
// number [1..5]
-
 
312
void ParamSet_WriteToEEProm(uint8_t setnumber)
300
void ParamSet_WriteToEEProm(uint8_t setnumber)
313
{
301
{
314
        if(setnumber > 5) setnumber = 5;
302
   if(setnumber > 5) setnumber = 5;
315
        if(setnumber < 1) return;
303
   eeprom_write_block((uint8_t *) &ParamSet.ChannelAssignment[0], &EEPromArray[EEPROM_ADR_PARAMSET_BEGIN + PARAMSET_STRUCT_LEN * setnumber], PARAMSET_STRUCT_LEN);
316
        eeprom_write_block((uint8_t *) &ParamSet.ChannelAssignment[0], &EEPromArray[EEPROM_ADR_PARAMSET_BEGIN + PARAMSET_STRUCT_LEN * (setnumber - 1)], PARAMSET_STRUCT_LEN);
304
   // set this parameter set to active set
317
        // set this parameter set to active set
Line 305... Line 318...
305
   eeprom_write_byte(&EEPromArray[PID_ACTIVE_SET], setnumber);
318
        SetActiveParamSet(setnumber);
306
   LED_Init();
319
        LED_Init();
Line 313... Line 326...
313
{
326
{
314
        uint8_t setnumber;
327
        uint8_t setnumber;
315
        setnumber = eeprom_read_byte(&EEPromArray[PID_ACTIVE_SET]);
328
        setnumber = eeprom_read_byte(&EEPromArray[PID_ACTIVE_SET]);
316
        if(setnumber > 5)
329
        if(setnumber > 5)
317
        {
330
        {
318
        setnumber = 2;
331
                setnumber = 3;
319
        eeprom_write_byte(&EEPromArray[PID_ACTIVE_SET], setnumber);
332
                eeprom_write_byte(&EEPromArray[PID_ACTIVE_SET], setnumber);
320
        }
333
        }
321
        return(setnumber);
334
        return(setnumber);
322
}
335
}
Line 325... Line 338...
325
/*       Set active parameter set                  */
338
/*       Set active parameter set                  */
326
/***************************************************/
339
/***************************************************/
327
void SetActiveParamSet(uint8_t setnumber)
340
void SetActiveParamSet(uint8_t setnumber)
328
{
341
{
329
        if(setnumber > 5) setnumber = 5;
342
        if(setnumber > 5) setnumber = 5;
-
 
343
        if(setnumber < 1) setnumber = 1;
330
        eeprom_write_byte(&EEPromArray[PID_ACTIVE_SET], setnumber);
344
        eeprom_write_byte(&EEPromArray[PID_ACTIVE_SET], setnumber);
331
}
345
}
Line 332... Line 346...
332
 
346
 
333
/***************************************************/
347
/***************************************************/
Line 340... Line 354...
340
        {
354
        {
341
                // if version check faild
355
                // if version check faild
342
                printf("\n\rInit. EEPROM: Generating Default-Parameter...");
356
                printf("\n\rInit. EEPROM: Generating Default-Parameter...");
343
                ParamSet_DefaultSet1(); // Fill ParamSet Structure to default parameter set 1 (Sport)
357
                ParamSet_DefaultSet1(); // Fill ParamSet Structure to default parameter set 1 (Sport)
344
                // fill all 5 parameter settings with set 1 except otherwise defined
358
                // fill all 5 parameter settings with set 1 except otherwise defined
345
                for (unsigned char i=0;i<6;i++)
359
                for (uint8_t i = 1;i < 6; i++)
346
                {
360
                {
347
                if(i==2) ParamSet_DefaultSet2(); // Kamera
361
                        if(i==2) ParamSet_DefaultSet2(); // Kamera
348
                if(i==3) ParamSet_DefaultSet3(); // Beginner
362
                        if(i==3) ParamSet_DefaultSet3(); // Beginner
349
                if(i>3)  ParamSet_DefaultSet2(); // Kamera
363
                        if(i>3)  ParamSet_DefaultSet2(); // Kamera
350
                ParamSet_WriteToEEProm(i);
364
                        ParamSet_WriteToEEProm(i);
351
                }
365
                }
352
                // default-Setting is parameter set 3
366
                // default-Setting is parameter set 3
353
                SetParamByte(PID_ACTIVE_SET, 3);
367
                SetActiveParamSet(3);
354
                // update version info
368
                // update version info
355
                SetParamByte(PID_VERSION, EEPARAM_VERSION);
369
                SetParamByte(PID_VERSION, EEPARAM_VERSION);
356
        }
370
        }
357
        // read active parameter set to ParamSet stucture
371
        // read active parameter set to ParamSet stucture
358
        ParamSet_ReadFromEEProm(GetParamByte(PID_ACTIVE_SET));
372
        ParamSet_ReadFromEEProm(GetActiveParamSet());
359
        printf("\n\rUsing Parameter Set %d", GetParamByte(PID_ACTIVE_SET));
373
        printf("\n\rUsing Parameter Set %d", GetActiveParamSet());
360
}
374
}