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 | } |