Forum: Mikrocontroller und Digitale Elektronik Stromverbrauch ADC Atmega8


von René P. (speedy909)


Lesenswert?

Hallo,

Ich baue derzeit an einer Modellbau-Servosteuerung die mit Batterie 
betrieben werden soll.

Der Stromverbrauch liegt im Normalfall (SLEEP_MODE_PWR_DOWN) bei 0,824mA 
(davon 0,9µA vom Prozessor) und der Rest von der Hardware 
(IR-Empfänger).

Sobald ich eine Messung mit dem ADC gemacht habe, benötigt der Prozessor 
(im PWR_DOWN) 0,296mA. Egal wie oft ich ihn Wecke und wieder in den 
Schlaf schicke!

Prozessor: Atmega8 (TQFP) @ 4MHz intern

Hier mein Code zum auslesen des ADC:
1
unsigned int analog_input(unsigned char channel)
2
{
3
 ADCSRA = (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1);   // Den ADC aktivieren und Teilungsfaktor auf 64 stellen
4
 ADMUX = channel;                 // Kanal des Multiplexers waehlen
5
   
6
 ADCSRA |= (1<<ADSC);
7
 while(ADCSRA & (1<<ADSC));
8
 return ADCW;                  //ergebnis
9
10
 ADCSRA &= ~(1<<ADEN);               // ADC wieder deaktivieren
11
}

Was mache ich falsch?

Gruß
René

von Peter R. (gelb)


Lesenswert?

René P. schrieb:

>  return ADCW;                  //ergebnis
>
>  ADCSRA &= ~(1<<ADEN);               // ADC wieder deaktivieren

Wie soll hier der ADC deaktiviert werden, wenn du vorher schon 
retournierst?

Grüße, Peter

von René P. (speedy909)


Lesenswert?

Upps, das hab ich übersehen.

Danke, jetzt funktionierts!

Gruß
René

von Phasengang (Gast)


Lesenswert?

René P. schrieb:
> 0,824mA
> (davon 0,9µA vom Prozessor)
>
> (im PWR_DOWN) 0,296mA

Du bist mein Held.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.