Forum: Mikrocontroller und Digitale Elektronik ADC im Sleep Mode


von V.S. (Gast)


Lesenswert?

Hallo zusammen.
Ich baue gerade eine Steuerung, die an eine Batterie betrieben wird.
Deswegen will ich den µC in Schlaf Modus (Power-down) versetzen wenn er 
nicht gebraucht wird. Der Schlaf Modus wird durch externes Interrupt 
unterbrochen.
Unter anderen hat der µC eine Aufgabe Spannung zu messen.
Meine Frage ist, wie schaltet man am besten den ADC aus?
Mit:   ACSR = 0x80;
Oder:  ADCSRA &=~ (1<<ADEN);
Im Datenblatt habe ich gelesen dass setzen des Register ACD im ACSR auf 
log.1 führt dazu das die Versorgung Spannung des ADC unterbrochen wird.
Wird dann der ADC wieder aktiv wenn ACD auf log.0 gesetzt wird?

Betanke mich im Voraus!

von HildeK (Gast)


Lesenswert?

V.S. schrieb:
> Betanke mich im Voraus!

Womit betankst du dich?

> Meine Frage ist, wie schaltet man am besten den ADC aus?
Beim Tiny85 mache ich das so:
1
ADCSRA |= (1 << ADEN);         // ADC einschalten
2
bzw. 
3
ADCSRA &= ~(1 << ADEN);        // ADC ausschalten
Dann schlafen legen und per z.B. INT0 wieder aufwecken.
Zur Sicherheit mache ich nach dem Reaktivieren des ADC einen 
Dummyaufruf, bevor ich die Nutzwert lese.

von HildeK (Gast)


Lesenswert?

Nachtrag:
ACSR hat ja mit dem AD-Wandler nichts zu tun - es steuert den 
Komparator.
Mit der Verwendung von ADEN bist du auch unabhängig davon, wo der 
aktuell verwendete Prozessor das Bit hingemappt hat. Müsste ja nicht 
immer gleich sein.

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.