Rev 50 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 50 | Rev 51 | ||
---|---|---|---|
Line 37... | Line 37... | ||
37 | ADCSRA = 0x00; |
37 | ADCSRA = 0x00; |
38 | SFIOR = 0x08; // Analog Comperator ein |
38 | SFIOR = 0x08; // Analog Comperator ein |
39 | } |
39 | } |
Line -... | Line 40... | ||
- | 40 | ||
40 | 41 | ||
41 | 42 | ||
42 | //############################################################################ |
43 | //############################################################################ |
43 | //Strom Analogwerte lesen |
44 | //Strom Analogwerte lesen |
44 | void FastADConvert(void) |
45 | unsigned int MessAD(unsigned char channel) |
45 | //############################################################################ |
46 | //############################################################################ |
46 | { |
47 | { |
47 | unsigned int i=0; |
48 | unsigned int i=0; |
48 | unsigned char sense; |
49 | unsigned char sense; |
49 | sense = ADMUX; // Sense-Kanal merken |
50 | sense = ADMUX; // Sense-Kanal merken |
50 | ADMUX = 0x06; // Kanal 6 |
51 | ADMUX = channel; // Kanal 6 |
51 | SFIOR = 0x00; // Analog Comperator aus |
52 | SFIOR = 0x00; // Analog Comperator aus |
52 | ADCSRA = 0xD3; // Converter ein, single |
53 | ADCSRA = 0xD3; // Converter ein, single |
53 | ADCSRA |= 0x10; // Ready löschen |
54 | ADCSRA |= 0x10; // Ready löschen |
54 | ADMUX = 0x06; // Kanal 6 |
55 | ADMUX = channel; // Kanal 6 |
55 | ADCSRA |= 0x40; // Start |
56 | ADCSRA |= 0x40; // Start |
- | 57 | while (((ADCSRA & 0x10) == 0)); |
|
- | 58 | ADMUX = sense; // zurück auf den Sense-Kanal |
|
- | 59 | ADCSRA = 0x00; |
|
- | 60 | SFIOR = 0x08; // Analog Comperator ein |
|
- | 61 | return(ADCW); |
|
- | 62 | } |
|
- | 63 | ||
- | 64 | //############################################################################ |
|
- | 65 | //Strom Analogwerte lesen |
|
- | 66 | void FastADConvert(void) |
|
- | 67 | //############################################################################ |
|
- | 68 | { |
|
- | 69 | unsigned int i=0; |
|
56 | while (((ADCSRA & 0x10) == 0)); |
70 | unsigned char sense; |
57 | ADMUX = sense; // zurück auf den Sense-Kanal |
71 | i = MessAD(6) * 4; |
58 | i = ADCW * 4; |
72 | // i = ADCW * 4; |
59 | if(i > 200) i = 200; |
73 | if(i > 200) i = 200; |
60 | Strom = i;//(i + Strom * 1) / 2; |
74 | Strom = i;//(i + Strom * 1) / 2; |
61 | if (Strom_max < Strom) Strom_max = Strom; |
75 | if (Strom_max < Strom) Strom_max = Strom; |