Rev 1226 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1226 | Rev 1286 | ||
---|---|---|---|
Line 79... | Line 79... | ||
79 | if(i<10) Delay_ms_Mess(10); |
79 | if(i<10) Delay_ms_Mess(10); |
80 | } |
80 | } |
81 | Delay_ms_Mess(70); |
81 | Delay_ms_Mess(70); |
82 | } |
82 | } |
Line 83... | Line 83... | ||
83 | 83 | ||
84 | /* |
84 | /* // MartinR: so war es |
85 | 0 n |
85 | 0 n |
86 | 1 r |
86 | 1 r |
87 | 2 g |
87 | 2 g |
88 | 3 y |
88 | 3 y |
Line 100... | Line 100... | ||
100 | 15 n |
100 | 15 n |
101 | 16 r |
101 | 16 r |
102 | 17 L |
102 | 17 L |
103 | */ |
103 | */ |
Line -... | Line 104... | ||
- | 104 | ||
- | 105 | /* MartinR : geändert |
|
- | 106 | 0 n |
|
- | 107 | 1 r |
|
- | 108 | 2 g |
|
- | 109 | 3 L |
|
- | 110 | 4 n |
|
- | 111 | 5 r |
|
- | 112 | 6 y |
|
- | 113 | 7 x |
|
- | 114 | 8 n |
|
- | 115 | 9 r |
|
- | 116 | 10 g |
|
- | 117 | 11 L |
|
- | 118 | 12 n |
|
- | 119 | 13 r |
|
- | 120 | 14 u |
|
- | 121 | 15 z |
|
- | 122 | */ |
|
104 | 123 | ||
105 | //####################################################################################### |
124 | //####################################################################################### |
106 | // |
125 | // |
107 | SIGNAL(SIG_ADC) |
126 | SIGNAL(SIG_ADC) |
108 | //####################################################################################### |
127 | //####################################################################################### |
109 | { |
128 | { |
110 | static unsigned char kanal=0,state = 0; |
129 | static unsigned char kanal=0,state = 0; |
- | 130 | static signed int gier1, roll1, nick1, nick_filter, roll_filter; |
|
- | 131 | static signed int roll_alt1, roll_alt2, roll_alt3, nick_alt1, nick_alt2, nick_alt3; // MartinR: 4x Mittelung |
|
111 | static signed int gier1, roll1, nick1, nick_filter, roll_filter; |
132 | //static signed int roll_alt1, nick_alt1; // MartinR: 2x Mittelung |
- | 133 | static signed int accy, accx; |
|
- | 134 | ||
112 | static signed int accy, accx; |
135 | /* // MartinR : so war es Anfang |
113 | switch(state++) |
136 | switch(state++) |
114 | { |
137 | { |
115 | case 0: |
138 | case 0: |
116 | nick1 = ADC; |
139 | nick1 = ADC; |
Line 235... | Line 258... | ||
235 | break; |
258 | break; |
236 | default: |
259 | default: |
237 | kanal = 0; state = 0; kanal = AD_NICK; |
260 | kanal = 0; state = 0; kanal = AD_NICK; |
238 | break; |
261 | break; |
239 | } |
262 | } |
- | 263 | */ // MartinR : so war es Ende |
|
- | 264 | // MartinR : geändert Anfang |
|
- | 265 | ||
- | 266 | switch(state++) |
|
- | 267 | { |
|
- | 268 | case 0: |
|
- | 269 | nick1 = ADC; |
|
- | 270 | kanal = AD_ROLL; |
|
- | 271 | break; |
|
- | 272 | case 1: |
|
- | 273 | roll1 = ADC; |
|
- | 274 | kanal = AD_GIER; |
|
- | 275 | break; |
|
- | 276 | ||
- | 277 | case 2: |
|
- | 278 | gier1 = ADC; |
|
- | 279 | kanal = AD_DRUCK; |
|
- | 280 | break; |
|
- | 281 | case 3: |
|
- | 282 | tmpLuftdruck += ADC; |
|
- | 283 | messanzahl_Druck ++; |
|
- | 284 | kanal = AD_NICK; |
|
- | 285 | break; |
|
- | 286 | ||
- | 287 | case 4: |
|
- | 288 | nick1 += ADC; |
|
- | 289 | kanal = AD_ROLL; |
|
- | 290 | break; |
|
- | 291 | case 5: |
|
- | 292 | roll1 += ADC; |
|
- | 293 | kanal = AD_ACC_Y; |
|
- | 294 | break; |
|
- | 295 | ||
- | 296 | case 6: |
|
- | 297 | Aktuell_ay = NeutralAccY - ADC; |
|
- | 298 | AdWertAccRoll = (Aktuell_ay + accy); |
|
- | 299 | accy = Aktuell_ay; |
|
- | 300 | kanal = AD_ACC_X; |
|
- | 301 | break; |
|
- | 302 | case 7: |
|
- | 303 | Aktuell_ax = ADC - NeutralAccX; |
|
- | 304 | AdWertAccNick = (Aktuell_ax + accx); |
|
- | 305 | accx = Aktuell_ax; |
|
- | 306 | kanal = AD_NICK; |
|
- | 307 | break; |
|
- | 308 | ||
- | 309 | case 8: |
|
- | 310 | nick1 += ADC; |
|
- | 311 | kanal = AD_ROLL; |
|
- | 312 | break; |
|
- | 313 | case 9: |
|
- | 314 | roll1 += ADC; |
|
- | 315 | kanal = AD_GIER; |
|
- | 316 | break; |
|
- | 317 | ||
- | 318 | case 10: |
|
- | 319 | if(PlatinenVersion == 10) AdWertGier = (ADC + gier1 + 1) / 2; |
|
- | 320 | else |
|
- | 321 | if(PlatinenVersion == 20) AdWertGier = 2047 - (ADC + gier1); |
|
- | 322 | else AdWertGier = (ADC + gier1); |
|
- | 323 | kanal = AD_DRUCK; |
|
- | 324 | break; |
|
- | 325 | ||
- | 326 | case 11: |
|
- | 327 | ||
- | 328 | // MartinR: neu |
|
- | 329 | tmpLuftdruck += ADC; |
|
- | 330 | //MessLuftdruck = tmpLuftdruck / 2; |
|
- | 331 | MessLuftdruck = ADC; |
|
- | 332 | ||
- | 333 | if(++messanzahl_Druck >= 5) |
|
- | 334 | { |
|
- | 335 | tmpLuftdruck -= 2616L * ExpandBaro; // -523.19 counts per 10 counts offset step |
|
- | 336 | tmpLuftdruck /= 2; |
|
- | 337 | messanzahl_Druck = 0; |
|
- | 338 | //HoeheD = (31 * HoeheD + (int) Parameter_Luftdruck_D * (int)((int)(StartLuftdruck - tmpLuftdruck) - HoehenWert))/32; // D-Anteil = neuerWert - AlterWert |
|
- | 339 | Luftdruck = (tmpLuftdruck + 7 * Luftdruck + 4) / 8; |
|
- | 340 | HoehenWert = StartLuftdruck - Luftdruck; |
|
- | 341 | //tmpLuftdruck /= 2; |
|
- | 342 | tmpLuftdruck = 0; |
|
- | 343 | } |
|
- | 344 | ||
- | 345 | // Luftdruck = (tmpLuftdruck + 7 * Luftdruck + 4) / 8; |
|
- | 346 | // HoehenWert = 255 * ExpandBaro + StartLuftdruck - Luftdruck; // MartinR: zu Höhenregler |
|
- | 347 | ||
- | 348 | kanal = AD_NICK; |
|
- | 349 | break; |
|
- | 350 | ||
- | 351 | case 12: |
|
- | 352 | nick1 += ADC; |
|
- | 353 | //if(PlatinenVersion == 10) nick1 *= 2; else nick1 *= 4; // MartinR: so war es |
|
- | 354 | //if(PlatinenVersion == 10) ; else nick1 *= 2; // MartinR: 2x Mittelung |
|
- | 355 | if(PlatinenVersion == 10) nick1 /= 2; //else nick1 *= 1; // MartinR: 4x Mittelung |
|
- | 356 | //AdWertNick = nick1 / 8; // MartinR: so war es |
|
- | 357 | //AdWertNick = nick1 / 4; // MartinR: 2x Mittelung |
|
- | 358 | AdWertNick = nick1 / 2; // MartinR: 4x Mittelung |
|
- | 359 | ||
- | 360 | // nick_filter = (nick_filter + nick1) / 2; // MartinR: so war es |
|
- | 361 | //nick_filter = (nick_alt1 + nick1); // MartinR: anderer Nick-Filter: 2x Mittelung |
|
- | 362 | nick_filter = (nick_alt3 +nick_alt2 +nick_alt1 + nick1); // MartinR: anderer Nick-Filter: 4x Mittelung |
|
- | 363 | nick_alt3 = nick_alt2; // MartinR: anderer Nick-Filter |
|
- | 364 | nick_alt2 = nick_alt1; // MartinR: anderer Nick-Filter |
|
- | 365 | nick_alt1 = nick1; // MartinR: anderer Nick-Filter |
|
- | 366 | ||
- | 367 | HiResNick = nick_filter - AdNeutralNick; |
|
- | 368 | //AdWertNickFilter = (AdWertNickFilter + HiResNick) / 2; // MartinR: so war es |
|
- | 369 | AdWertNickFilter = HiResNick; // MartinR: Filter deaktiviert |
|
- | 370 | kanal = AD_ROLL; |
|
- | 371 | ||
- | 372 | break; |
|
- | 373 | case 13: |
|
- | 374 | roll1 += ADC; |
|
- | 375 | // if(PlatinenVersion == 10) roll1 *= 2; else roll1 *= 4; // MartinR: so war es |
|
- | 376 | //if(PlatinenVersion == 10) ; else roll1 *= 2; // MartinR: 2x Mittelung |
|
- | 377 | if(PlatinenVersion == 10) roll1 /= 2; //else roll1 *= 1; // MartinR: 4x Mittelung |
|
- | 378 | // AdWertRoll = roll1 / 8; // MartinR: so war es |
|
- | 379 | //AdWertRoll = roll1 / 4; // MartinR: 2x Mittelung |
|
- | 380 | AdWertRoll = roll1 / 2; // MartinR: 4x Mittelung |
|
- | 381 | ||
- | 382 | //roll_filter = (roll_filter + roll1) / 2; // MartinR: so war es |
|
- | 383 | //roll_filter = (roll_alt1 + roll1); // MartinR: anderer Nick-Filter: 2x Mittelung |
|
- | 384 | roll_filter = (roll_alt3 + roll_alt2 + roll_alt1 + roll1); // MartinR: anderer Nick-Filter: 4x Mittelung |
|
- | 385 | roll_alt3 = roll_alt2; // MartinR: anderer Nick-Filter |
|
- | 386 | roll_alt2 = roll_alt1; // MartinR: anderer Nick-Filter |
|
- | 387 | roll_alt1 = roll1; // MartinR: anderer Nick-Filter |
|
- | 388 | ||
- | 389 | HiResRoll = roll_filter - AdNeutralRoll; |
|
- | 390 | //AdWertRollFilter = (AdWertRollFilter + HiResRoll) / 2; // MartinR: so war es |
|
- | 391 | AdWertRollFilter = HiResRoll; // MartinR: Filter deaktiviert |
|
- | 392 | ||
- | 393 | kanal = AD_UBAT; |
|
- | 394 | ||
- | 395 | break; |
|
- | 396 | ||
- | 397 | case 14: |
|
- | 398 | UBat = (3 * UBat + ADC / 3) / 4; |
|
- | 399 | kanal = AD_ACC_Z; |
|
- | 400 | break; |
|
- | 401 | ||
- | 402 | case 15: |
|
- | 403 | // AdWertAccHoch = (signed int) ADC - NeutralAccZ; // MartinR : so war es |
|
- | 404 | //AdWertAccHoch = ADC - NeutralAccZ; // MartinR: modifiziert für Tests |
|
- | 405 | /* // MartinR: deaktiviert |
|
- | 406 | |
|
- | 407 | if(AdWertAccHoch > 1) |
|
- | 408 | { |
|
- | 409 | if(NeutralAccZ < 750) |
|
- | 410 | { |
|
- | 411 | NeutralAccZ += 0.02; |
|
- | 412 | if(modell_fliegt < 500) NeutralAccZ += 0.1; |
|
- | 413 | } |
|
- | 414 | } |
|
- | 415 | else if(AdWertAccHoch < -1) |
|
- | 416 | { |
|
- | 417 | if(NeutralAccZ > 550) |
|
- | 418 | { |
|
- | 419 | NeutralAccZ -= 0.02; |
|
- | 420 | if(modell_fliegt < 500) NeutralAccZ -= 0.1; |
|
- | 421 | } |
|
- | 422 | } |
|
- | 423 | */ // MartinR: deaktiviert Ende |
|
- | 424 | ||
- | 425 | // messanzahl_AccHoch = 1; MartinR: deaktiviert, da nicht verwendet |
|
- | 426 | ||
- | 427 | Aktuell_az = (Aktuell_az + ADC) / 2; |
|
- | 428 | AdWertAccHoch = Aktuell_az - NeutralAccZ; // MartinR: modifiziert für Tests |
|
- | 429 | //Mess_Integral_Hoch += AdWertAccHoch; // Integrieren // MartinR: zu Höhenregler in fc.c verschoben |
|
- | 430 | //Mess_Integral_Hoch -= Mess_Integral_Hoch / 1024; // dämfen // MartinR: zu Höhenregler in fc.c verschoben |
|
- | 431 | ||
- | 432 | AdReady = 1; |
|
- | 433 | state = 0; |
|
- | 434 | kanal = AD_NICK; |
|
- | 435 | break; |
|
- | 436 | ||
- | 437 | default: |
|
- | 438 | kanal = 0; state = 0; kanal = AD_NICK; |
|
- | 439 | break; |
|
- | 440 | } |
|
- | 441 | ||
- | 442 | // MartinR : geändert Ende |
|
- | 443 | ||
- | 444 | ||
240 | ADMUX = kanal; |
445 | ADMUX = kanal; |
241 | if(state != 0) ANALOG_ON; |
446 | // if(state != 0) ANALOG_ON; // MartinR : so war es: |
- | 447 | // Bei jedem Reglerzyklus wurde nur der Ablauf der Reihenfolge der AD-Wandlungen angestoßen. |
|
- | 448 | // Solange die Reihe nicht durchgelaufen ist, wurde nach jeder AD-Wandlung die nächste AD-Wandlung über ANALOG_ON gestartet. |
|
- | 449 | ||
- | 450 | // if(state != 0) ANALOG_START; // MartinR verschoben zu timer0 |
|
- | 451 | ||
242 | } |
452 | } |
Line 243... | Line 453... | ||
243 | 453 | ||
244 | 454 |