Subversion Repositories FlightCtrl

Rev

Rev 425 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 425 Rev 461
Line 19... Line 19...
19
volatile int HoeheD = 0;
19
volatile int HoeheD = 0;
20
volatile char messanzahl_Druck;
20
volatile char messanzahl_Druck;
21
volatile int  tmpLuftdruck;
21
volatile int  tmpLuftdruck;
22
volatile unsigned int ZaehlMessungen = 0;
22
volatile unsigned int ZaehlMessungen = 0;
Line -... Line 23...
-
 
23
 
23
 
24
 
24
//#######################################################################################
25
//#######################################################################################
25
//
26
//
26
void ADC_Init(void)
27
void ADC_Init(void)
27
//#######################################################################################
28
//#######################################################################################
28
{
29
{
29
    ADMUX = 0;//Referenz ist extern
30
    ADMUX = 0;//Referenz ist extern
30
    ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0)|(1<<ADIE);
31
    ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0)|(1<<ADIE);
31
    //Free Running Mode, Division Factor 128, Interrupt on
32
    //Free Running Mode, Division Factor 128, Interrupt on
Line -... Line 33...
-
 
33
}
-
 
34
 
-
 
35
 
32
}
36
//#######################################################################################
-
 
37
//
33
 
38
void SucheLuftruckOffset(void)
34
void SucheLuftruckOffset(void)
39
//#######################################################################################
-
 
40
{
-
 
41
 unsigned int off;
-
 
42
 off = eeprom_read_byte(&EEPromArray[EEPROM_ADR_LAST_OFFSET]);
-
 
43
 if(off > 20) off -= 10;
-
 
44
 OCR0A = off;
35
{
45
 Delay_ms(100);
36
 unsigned int off;
46
 if(MessLuftdruck < 850) off = 0;
37
 for(off=0; off < 250;off++)
47
 for(; off < 250;off++)
38
  {
48
  {
39
  OCR0A = off;
49
  OCR0A = off;
40
  Delay_ms(50);
50
  Delay_ms(50);
41
  printf(".");  
51
  printf(".");  
-
 
52
  if(MessLuftdruck < 900) break;
42
  if(MessLuftdruck < 900) break;
53
  }
43
  }
54
 eeprom_write_byte(&EEPromArray[EEPROM_ADR_LAST_OFFSET], off);
44
   DruckOffsetSetting = off;
55
 DruckOffsetSetting = off;
Line 45... Line 56...
45
   Delay_ms(200);
56
 Delay_ms(200);
46
}
57
}
Line 114... Line 125...
114
              if(acc_neutral.Z > 600) acc_neutral.Z-= 0.02;
125
              if(acc_neutral.Z > 600) acc_neutral.Z-= 0.02;
115
             }
126
             }
116
            messanzahl_AccHoch = 1;
127
            messanzahl_AccHoch = 1;
117
            Aktuell_az = ADC;
128
            Aktuell_az = ADC;
118
            Mess_Integral_Hoch += accumulate_AccHoch;      // Integrieren
129
            Mess_Integral_Hoch += accumulate_AccHoch;      // Integrieren
119
            Mess_Integral_Hoch -= Mess_Integral_Hoch / 1024; // dämfen
130
            Mess_Integral_Hoch -= Mess_Integral_Hoch / 1024; // dämpfen
120
//            Mess_Integral_Hoch -= Mess_Integral_Hoch / 512; // dämfen
-
 
121
 /*           if(EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)
-
 
122
             {
-
 
123
                      kanal = 3;
131
                    kanal = 3;
124
                      state = 7;
-
 
125
             }
-
 
126
            else  
-
 
127
             {
-
 
128
                      kanal = 0;
-
 
129
                      state = 0;
-
 
130
             }*/
-
 
131
                      kanal = 3;
-
 
132
                      state = 7;
132
                    state = 7;
133
            break;
133
            break;
134
        case 7:
134
        case 7:
135
            tmpLuftdruck += ADC;
135
            tmpLuftdruck += ADC;
136
            if(++messanzahl_Druck >= 5)
136
            if(++messanzahl_Druck >= 5)
137
                {
137
                {