Rev 1168 | Rev 1173 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1168 | Rev 1171 | ||
---|---|---|---|
Line 77... | Line 77... | ||
77 | if(i<10) Delay_ms_Mess(10); |
77 | if(i<10) Delay_ms_Mess(10); |
78 | } |
78 | } |
79 | Delay_ms_Mess(70); |
79 | Delay_ms_Mess(70); |
80 | } |
80 | } |
Line -... | Line 81... | ||
- | 81 | ||
- | 82 | /* |
|
- | 83 | 0 n |
|
- | 84 | 1 r |
|
- | 85 | 2 g |
|
- | 86 | 3 y |
|
- | 87 | 4 x |
|
- | 88 | 5 n |
|
- | 89 | 6 r |
|
- | 90 | 7 u |
|
- | 91 | 8 z |
|
- | 92 | 9 L |
|
- | 93 | 10 n |
|
- | 94 | 11 r |
|
- | 95 | 12 g |
|
- | 96 | 13 y |
|
- | 97 | 14 x |
|
- | 98 | 15 n |
|
- | 99 | 16 r |
|
- | 100 | 17 L |
|
- | 101 | */ |
|
- | 102 | ||
- | 103 | //####################################################################################### |
|
- | 104 | // |
|
- | 105 | SIGNAL(SIG_ADC) |
|
- | 106 | //####################################################################################### |
|
- | 107 | { |
|
- | 108 | static unsigned char kanal=0,state = 0; |
|
- | 109 | static signed int gier1, roll1, nick1, nick_filter, roll_filter; |
|
- | 110 | static signed int accy, accx; |
|
- | 111 | switch(state++) |
|
- | 112 | { |
|
- | 113 | case 0: |
|
- | 114 | nick1 = ADC; |
|
- | 115 | kanal = AD_ROLL; |
|
- | 116 | break; |
|
- | 117 | case 1: |
|
- | 118 | roll1 = ADC; |
|
- | 119 | kanal = AD_GIER; |
|
- | 120 | break; |
|
- | 121 | case 2: |
|
- | 122 | gier1 = ADC; |
|
- | 123 | kanal = AD_ACC_Y; |
|
- | 124 | break; |
|
- | 125 | case 3: |
|
- | 126 | Aktuell_ay = NeutralAccY - ADC; |
|
- | 127 | accy = Aktuell_ay; |
|
- | 128 | kanal = AD_ACC_X; |
|
- | 129 | break; |
|
- | 130 | case 4: |
|
- | 131 | Aktuell_ax = ADC - NeutralAccX; |
|
- | 132 | accx = Aktuell_ax; |
|
- | 133 | kanal = AD_NICK; |
|
- | 134 | break; |
|
- | 135 | case 5: |
|
- | 136 | nick1 += ADC; |
|
- | 137 | kanal = AD_ROLL; |
|
- | 138 | break; |
|
- | 139 | case 6: |
|
- | 140 | roll1 += ADC; |
|
- | 141 | kanal = AD_UBAT; |
|
- | 142 | break; |
|
- | 143 | case 7: |
|
- | 144 | UBat = (3 * UBat + ADC / 3) / 4; |
|
- | 145 | kanal = AD_ACC_Z; |
|
- | 146 | break; |
|
- | 147 | case 8: |
|
- | 148 | AdWertAccHoch = (signed int) ADC - NeutralAccZ; |
|
- | 149 | if(AdWertAccHoch > 1) |
|
- | 150 | { |
|
- | 151 | if(NeutralAccZ < 750) |
|
- | 152 | { |
|
- | 153 | NeutralAccZ += 0.02; |
|
- | 154 | if(modell_fliegt < 500) NeutralAccZ += 0.1; |
|
- | 155 | } |
|
- | 156 | } |
|
- | 157 | else if(AdWertAccHoch < -1) |
|
- | 158 | { |
|
- | 159 | if(NeutralAccZ > 550) |
|
- | 160 | { |
|
- | 161 | NeutralAccZ-= 0.02; |
|
- | 162 | if(modell_fliegt < 500) NeutralAccZ -= 0.1; |
|
- | 163 | } |
|
- | 164 | } |
|
- | 165 | messanzahl_AccHoch = 1; |
|
- | 166 | Aktuell_az = ADC; |
|
- | 167 | Mess_Integral_Hoch += AdWertAccHoch; // Integrieren |
|
- | 168 | Mess_Integral_Hoch -= Mess_Integral_Hoch / 1024; // dämfen |
|
- | 169 | kanal = AD_DRUCK; |
|
- | 170 | break; |
|
- | 171 | // "case 8:" fehlt hier absichtlich |
|
- | 172 | case 10: |
|
- | 173 | nick1 += ADC; |
|
- | 174 | kanal = AD_ROLL; |
|
- | 175 | break; |
|
- | 176 | case 11: |
|
- | 177 | roll1 += ADC; |
|
- | 178 | kanal = AD_GIER; |
|
- | 179 | break; |
|
- | 180 | case 12: |
|
- | 181 | if(PlatinenVersion == 10) AdWertGier = (ADC + gier1 + 1) / 2; |
|
- | 182 | else |
|
- | 183 | if(PlatinenVersion == 20) AdWertGier = 2047 - (ADC + gier1); |
|
- | 184 | else AdWertGier = (ADC + gier1); |
|
- | 185 | kanal = AD_ACC_Y; |
|
- | 186 | break; |
|
- | 187 | case 13: |
|
- | 188 | Aktuell_ay = NeutralAccY - ADC; |
|
- | 189 | AdWertAccRoll = (Aktuell_ay + accy); |
|
- | 190 | kanal = AD_ACC_X; |
|
- | 191 | break; |
|
- | 192 | case 14: |
|
- | 193 | Aktuell_ax = ADC - NeutralAccX; |
|
- | 194 | AdWertAccNick = (Aktuell_ax + accx); |
|
- | 195 | kanal = AD_NICK; |
|
- | 196 | break; |
|
- | 197 | case 15: |
|
- | 198 | nick1 += ADC; |
|
- | 199 | AdWertNick = nick1 / 2; |
|
- | 200 | nick_filter = (nick_filter + 4 * nick1) / 2; |
|
- | 201 | if(PlatinenVersion == 10) { AdWertNick /= 2;nick_filter /=2;} |
|
- | 202 | HiResNick = nick_filter - 8 * AdNeutralNick; |
|
- | 203 | AdWertNickFilter = (AdWertNickFilter + HiResNick) / 2; |
|
- | 204 | // DebugOut.Analog[21] = AdWertNickFilter / 4; |
|
- | 205 | kanal = AD_ROLL; |
|
- | 206 | break; |
|
- | 207 | case 16: |
|
- | 208 | roll1 += ADC; |
|
- | 209 | AdWertRoll = roll1 / 2; |
|
- | 210 | roll_filter = (roll_filter + 4 * roll1) / 2; |
|
- | 211 | if(PlatinenVersion == 10) { AdWertRoll /= 2;roll_filter /=2;} |
|
- | 212 | HiResRoll = roll_filter - 8 * AdNeutralRoll; |
|
- | 213 | AdWertRollFilter = (AdWertRollFilter + HiResRoll) / 2; |
|
- | 214 | // DebugOut.Analog[22] = AdWertRollFilter / 4; |
|
- | 215 | kanal = AD_DRUCK; |
|
- | 216 | break; |
|
- | 217 | case 17: |
|
- | 218 | state = 0; |
|
- | 219 | AdReady = 1; |
|
- | 220 | ZaehlMessungen++; |
|
- | 221 | // "break" fehlt hier absichtlich |
|
- | 222 | case 9: |
|
- | 223 | tmpLuftdruck += ADC; |
|
- | 224 | if(++messanzahl_Druck >= 5) |
|
- | 225 | { |
|
- | 226 | tmpLuftdruck /= 2; |
|
- | 227 | MessLuftdruck = ADC; |
|
- | 228 | messanzahl_Druck = 0; |
|
- | 229 | HoeheD = (31 * HoeheD + (int) Parameter_Luftdruck_D * (int)(255 * ExpandBaro + StartLuftdruck - tmpLuftdruck - HoehenWert))/32; // D-Anteil = neuerWert - AlterWert |
|
- | 230 | DebugOut.Analog[24] = 255 * ExpandBaro + StartLuftdruck - tmpLuftdruck; |
|
- | 231 | DebugOut.Analog[23] = HoeheD; |
|
- | 232 | Luftdruck = (tmpLuftdruck + 7 * Luftdruck + 4) / 8; |
|
- | 233 | HoehenWert = 255 * ExpandBaro + StartLuftdruck - Luftdruck; |
|
- | 234 | tmpLuftdruck /= 2; |
|
- | 235 | } |
|
- | 236 | kanal = AD_NICK; |
|
- | 237 | break; |
|
- | 238 | default: |
|
- | 239 | kanal = 0; state = 0; kanal = AD_NICK; |
|
- | 240 | break; |
|
- | 241 | } |
|
- | 242 | ADMUX = kanal; |
|
- | 243 | if(state != 0) ANALOG_ON; |
|
- | 244 | } |
|
- | 245 | ||
- | 246 | ||
- | 247 | ||
81 | 248 | /* |
|
82 | //####################################################################################### |
249 | //####################################################################################### |
83 | // |
250 | // |
84 | SIGNAL(SIG_ADC) |
251 | SIGNAL(SIG_ADC) |
85 | //####################################################################################### |
252 | //####################################################################################### |
Line 289... | Line 456... | ||
289 | break; |
456 | break; |
290 | } |
457 | } |
291 | ADMUX = kanal; |
458 | ADMUX = kanal; |
292 | if(state != 0) ANALOG_ON; |
459 | if(state != 0) ANALOG_ON; |
293 | } |
460 | } |
294 | 461 | */ |