Rev 2176 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2176 | Rev 2177 | ||
---|---|---|---|
Line 183... | Line 183... | ||
183 | // |
183 | // |
184 | ISR(ADC_vect) |
184 | ISR(ADC_vect) |
185 | //####################################################################################### |
185 | //####################################################################################### |
186 | { |
186 | { |
187 | static unsigned char kanal=0,state = 0; |
187 | static unsigned char kanal=0,state = 0; |
188 | static signed char subcount = 0; |
188 | //static signed char subcount = 0; // MartinR: wird nicht mehr benötigt, da deaktiviert |
189 | static signed int gier1, roll1, nick1, nick_filter, roll_filter; |
189 | static signed int gier1, roll1, nick1, nick_filter, roll_filter; |
190 | static signed int accy, accx; |
190 | static signed int accy, accx; |
191 | static long tmpLuftdruck = 0; |
191 | static long tmpLuftdruck = 0; |
192 | static char messanzahl_Druck = 0; |
192 | static char messanzahl_Druck = 0; |
193 | switch(state++) |
193 | switch(state++) |
Line 230... | Line 230... | ||
230 | UBat = (3 * UBat + ADC / 3) / 4; |
230 | UBat = (3 * UBat + ADC / 3) / 4; |
231 | kanal = AD_ACC_Z; |
231 | kanal = AD_ACC_Z; |
232 | break; |
232 | break; |
233 | case 8: |
233 | case 8: |
234 | AdWertAccHoch = (signed int) ADC - NeutralAccZ; |
234 | AdWertAccHoch = (signed int) ADC - NeutralAccZ; |
- | 235 | ||
- | 236 | /* // MartinR: deaktivieren Anfang |
|
- | 237 | |
|
235 | if(AdWertAccHoch > 1) |
238 | if(AdWertAccHoch > 1) |
236 | { |
239 | { |
237 | if(NeutralAccZ < 750) |
240 | if(NeutralAccZ < 750) |
238 | { |
241 | { |
239 | subcount += 5; |
242 | subcount += 5; |
Line 248... | Line 251... | ||
248 | subcount -= 5; |
251 | subcount -= 5; |
249 | if(modell_fliegt < 500) subcount -= 10; |
252 | if(modell_fliegt < 500) subcount -= 10; |
250 | if(subcount < -100) { NeutralAccZ--; subcount += 100;} |
253 | if(subcount < -100) { NeutralAccZ--; subcount += 100;} |
251 | } |
254 | } |
252 | } |
255 | } |
- | 256 | |
|
- | 257 | */ // MartinR: deaktivieren Ende |
|
- | 258 | ||
253 | // messanzahl_AccHoch = 1; |
259 | //messanzahl_AccHoch = 1; |
254 | Aktuell_az = ADC; |
260 | Aktuell_az = ADC; |
255 | Mess_Integral_Hoch += AdWertAccHoch; // Integrieren |
261 | Mess_Integral_Hoch += AdWertAccHoch; // Integrieren |
256 | Mess_Integral_Hoch -= Mess_Integral_Hoch / 1024; // dämfen |
262 | Mess_Integral_Hoch -= Mess_Integral_Hoch / 1024; // dämfen |
257 | kanal = AD_DRUCK; |
263 | kanal = AD_DRUCK; |
258 | break; |
264 | break; |
Line 285... | Line 291... | ||
285 | case 15: |
291 | case 15: |
286 | nick1 += ADC; |
292 | nick1 += ADC; |
287 | if(PlatinenVersion == 10) nick1 *= 2; else nick1 *= 4; |
293 | if(PlatinenVersion == 10) nick1 *= 2; else nick1 *= 4; |
288 | AdWertNick = nick1 / 8; |
294 | AdWertNick = nick1 / 8; |
289 | nick_filter = (nick_filter + nick1) / 2; |
295 | nick_filter = (nick_filter + nick1) / 2; |
290 | HiResNick = nick_filter - AdNeutralNick; |
296 | //HiResNick = nick_filter - AdNeutralNick; // MartinR: so war es |
- | 297 | HiResNick = (nick_filter - AdNeutralNick + 4 ) / 8 ; // MartinR: + 4um Rundungsfehler zu verbessern |
|
- | 298 | // MartinR: /8 von fc.c nach hier verschoben um Code zu sparen |
|
291 | AdWertNickFilter = (AdWertNickFilter + HiResNick) / 2; |
299 | AdWertNickFilter = (AdWertNickFilter + HiResNick) / 2; |
292 | kanal = AD_ROLL; |
300 | kanal = AD_ROLL; |
293 | break; |
301 | break; |
294 | case 16: |
302 | case 16: |
295 | roll1 += ADC; |
303 | roll1 += ADC; |
296 | if(PlatinenVersion == 10) roll1 *= 2; else roll1 *= 4; |
304 | if(PlatinenVersion == 10) roll1 *= 2; else roll1 *= 4; |
297 | AdWertRoll = roll1 / 8; |
305 | AdWertRoll = roll1 / 8; |
298 | roll_filter = (roll_filter + roll1) / 2; |
306 | roll_filter = (roll_filter + roll1) / 2; |
299 | HiResRoll = roll_filter - AdNeutralRoll; |
307 | //HiResRoll = roll_filter - AdNeutralRoll; // MartinR: so war es |
- | 308 | HiResRoll = (roll_filter - AdNeutralRoll + 4 ) / 8; // MartinR: + 4um Rundungsfehler zu verbessern |
|
- | 309 | // MartinR: /8 von fc.c nach hier verschoben um Code zu sparen |
|
300 | AdWertRollFilter = (AdWertRollFilter + HiResRoll) / 2; |
310 | AdWertRollFilter = (AdWertRollFilter + HiResRoll) / 2; |
301 | kanal = AD_DRUCK; |
311 | kanal = AD_DRUCK; |
302 | break; |
312 | break; |
303 | case 17: |
313 | case 17: |
304 | state = 0; |
314 | state = 0; |
305 | AdReady = 1; |
315 | AdReady = 1; |
306 | ZaehlMessungen++; |
316 | ZaehlMessungen++; |
307 | // "break" fehlt hier absichtlich |
317 | // "break" fehlt hier absichtlich |
308 | case 9: |
318 | case 9: |
309 | MessLuftdruck = ADC; |
319 | //MessLuftdruck = ADC; // MartinR: so war es |
- | 320 | MessLuftdruck = ADC + ((Parameter_UserParam4 * AdWertAccHoch) / 256) ; // MartinR: |
|
- | 321 | // mit Korrektur der Beschleunigungsempfindlichkeit des Luftdrucksensors |
|
310 | tmpLuftdruck += MessLuftdruck; |
322 | tmpLuftdruck += MessLuftdruck; |
311 | if(++messanzahl_Druck >= 16) // war bis 0.86 "18" |
323 | if(++messanzahl_Druck >= 16) // war bis 0.86 "18" |
312 | { |
324 | { |
313 | signed int tmp; |
325 | signed int tmp; |
314 | Luftdruck = (7 * Luftdruck + tmpLuftdruck - (16 * 523) * (long)ExpandBaro + 4) / 8; // -523.19 counts per 10 counts offset step |
326 | Luftdruck = (7 * Luftdruck + tmpLuftdruck - (16 * 523) * (long)ExpandBaro + 4) / 8; // -523.19 counts per 10 counts offset step |