Subversion Repositories BL-Ctrl

Rev

Rev 29 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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