Subversion Repositories FlightCtrl

Rev

Rev 128 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 128 Rev 173
Line 32... Line 32...
32
}
32
}
Line 33... Line 33...
33
 
33
 
34
void SucheLuftruckOffset(void)
34
void SucheLuftruckOffset(void)
35
{
35
{
-
 
36
 unsigned int off;
-
 
37
 off = eeprom_read_byte(&EEPromArray[EEPROM_ADR_LAST_OFFSET]);
-
 
38
 if(off > 20) off -= 10;
-
 
39
 OCR0A = off;
-
 
40
 Delay_ms(100);
36
 unsigned int off;
41
 if(MessLuftdruck < 850) off = 0;
37
 for(off=0; off < 250;off++)
42
 for(; off < 250;off++)
38
  {
43
  {
39
  OCR0A = off;
44
  OCR0A = off;
40
  Delay_ms(50);
45
  Delay_ms(50);
41
  printf(".");  
46
  printf(".");  
42
  if(MessLuftdruck < 900) break;
47
  if(MessLuftdruck < 900) break;
-
 
48
  }
43
  }
49
 eeprom_write_byte(&EEPromArray[EEPROM_ADR_LAST_OFFSET], off);
44
   DruckOffsetSetting = off;
50
 DruckOffsetSetting = off;
45
   Delay_ms(200);
51
 Delay_ms(300);
Line 46... Line 52...
46
}
52
}
47
 
53
 
Line 56... Line 62...
56
    ANALOG_OFF;
62
    ANALOG_OFF;
57
    switch(state++)
63
    switch(state++)
58
        {
64
        {
59
        case 0:
65
        case 0:
60
            wert = (signed int) AdNeutralGier - ADC;
66
            wert = (signed int) AdNeutralGier - ADC;
-
 
67
            if(PlatinenVersion != 10) wert *= 2;
61
            AccumulateGier += wert;     //
68
            AccumulateGier += wert;     //
62
            MessanzahlGier++;
69
            MessanzahlGier++;
63
            Mess_Integral_Gier += wert;// / 16;
70
            Mess_Integral_Gier += wert;// / 16;
64
            Mess_Integral_Gier2 += wert;
71
            Mess_Integral_Gier2 += wert;
65
            kanal = 1;
72
            kanal = 1;
66
            ZaehlMessungen++;
73
            ZaehlMessungen++;
67
            break;
74
            break;
68
        case 1:
75
        case 1:
69
            wert = (signed int) ADC - AdNeutralRoll;
76
            wert = (signed int) ADC - AdNeutralRoll;
-
 
77
            if(PlatinenVersion != 10) wert *= 2;
70
            Mess_IntegralRoll += wert;
78
            Mess_IntegralRoll += wert;
71
            Mess_IntegralRoll2 += wert;
79
            Mess_IntegralRoll2 += wert;
-
 
80
            if(Mess_IntegralRoll > 310000L) Mess_IntegralRoll = -290000L;
-
 
81
            if(Mess_IntegralRoll <-310000L) Mess_IntegralRoll = 290000L;
72
            if(ADC < 10)   wert = -700;
82
            if(ADC < 15)   wert = -1000;
-
 
83
            if(ADC <  7)   wert = -2000;
73
            if(ADC > 1000) wert = +700;
84
            if(ADC > 1010) wert = +1000;
-
 
85
            if(ADC > 1017) wert = +2000;
74
            AccumulateRoll += wert;
86
            AccumulateRoll += wert;
75
            MessanzahlRoll++;
87
            MessanzahlRoll++;
76
            kanal = 2;
88
            kanal = 2;
77
            break;
89
            break;
78
        case 2:
90
        case 2:
79
            wert = (signed int) ADC - AdNeutralNick;
91
            wert = (signed int) ADC - AdNeutralNick;
-
 
92
            if(PlatinenVersion != 10) wert *= 2;
80
            Mess_IntegralNick += wert;
93
            Mess_IntegralNick += wert;
81
            Mess_IntegralNick2 += wert;
94
            Mess_IntegralNick2 += wert;
-
 
95
            if(Mess_IntegralNick > 310000L) Mess_IntegralNick = -290000L;
-
 
96
            if(Mess_IntegralNick <-310000L) Mess_IntegralNick = 290000L;
82
            if(ADC < 10)   wert = -700;
97
            if(ADC < 15)   wert = -1000;
-
 
98
            if(ADC <  7)   wert = -2000;
83
            if(ADC > 1000) wert = +700;
99
            if(ADC > 1010) wert = +1000;
-
 
100
            if(ADC > 1017) wert = +2000;
84
            AccumulateNick += wert;
101
            AccumulateNick += wert;
85
            MessanzahlNick++;
102
            MessanzahlNick++;
86
            kanal = 4;
103
            kanal = 4;
87
            break;
104
            break;
88
        case 3:
105
        case 3: