Subversion Repositories BL-Ctrl

Rev

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

Rev 29 Rev 41
Line 7... Line 7...
7
//############################################################################
7
//############################################################################
8
//Init ADC
8
//Init ADC
9
void ADC_Init(void)
9
void ADC_Init(void)
10
//############################################################################
10
//############################################################################
11
{
11
{
12
  ADCSRA = 0xA6;  // Free Run & 1MHZ
12
  ADCSRA = 0xA5;  // Free Run, 125 kHZ
13
  ADMUX = 7;      // Kanal 7
13
  ADMUX = 7;      // Kanal 7
14
  ADCSRA |= 0x40; // Start
14
  ADCSRA |= 0x40; // Start
15
}
15
}
Line -... Line 16...
-
 
16
 
16
 
17
 
17
//############################################################################
18
//############################################################################
18
//Strom Analogwerte lesen
19
//Strom Analogwerte lesen
19
void AdConvert(void)
20
void AdConvert(void)
20
//############################################################################
21
//############################################################################
21
{
22
{
22
 unsigned int i=0;  
23
 unsigned int i=0;  
23
 unsigned char sense;
24
 unsigned char sense;
24
  sense = ADMUX;   // Sense-Kanal merken
25
  sense = ADMUX;   // Sense-Kanal merken
25
  ADMUX  =  0x06;  // Kanal 6
26
  ADMUX  =  0x06;  // Kanal 6
26
  SFIOR  =  0x00;  // Analog Comperator aus
27
  SFIOR  =  0x00;  // Analog Comperator aus
27
  ADCSRA =  0xD3;  // Converter ein, single
28
  ADCSRA =  0xD2;  // Converter ein, single, 1 MHz
28
  ADCSRA |= 0x10;  // Ready löschen
29
  ADCSRA |= 0x10;  // Ready löschen
29
  ADMUX  =  0x06;  // Kanal 6
30
  ADMUX  =  0x06;  // Kanal 6
30
  ADCSRA |= 0x40;  // Start
31
  ADCSRA |= 0x40;  // Start
31
  while (((ADCSRA & 0x10) == 0));
32
  while (((ADCSRA & 0x10) == 0));
Line 34... Line 35...
34
  if(i > 200) i = 200;
35
  if(i > 200) i = 200;
35
  Strom = (i + Strom * 7) / 8;
36
  Strom = (i + Strom * 7) / 8;
36
  if (Strom_max < Strom) Strom_max = Strom;
37
  if (Strom_max < Strom) Strom_max = Strom;
37
  ADCSRA = 0x00;  
38
  ADCSRA = 0x00;  
38
  SFIOR = 0x08;  // Analog Comperator ein
39
  SFIOR = 0x08;  // Analog Comperator ein
39
}
40
}
40
 
-
 
41
 
41