Forum: Mikrocontroller und Digitale Elektronik Power-Down ohne sleep.h ATmega8


von ich d. (tracktorad)


Angehängte Dateien:

Lesenswert?

Hi,

Ich möchte meinen ATmega8 in den Power-Down Modus schicken ohne das ich 
die sleep.h verwende, um den Mikrocontroller besser zu verstehn (Ich bin 
Anfänger).

Also aus dem Datenblatt habe ich schon raus gelesen das ich das 7. Bit 
von MCUCR auf 1 setzen muss und für den Power Down modus das 6.-5.-4. 
Bit auf 010 setzen muss und den Rest auf 0 (Datenblatt S.33)

Wie kann ich jetzt den ATmega in den Modus schicken??

Anhang: C-Code

von Andreas B. (andreas_b77)


Lesenswert?

Mit der SLEEP Instruktion, das steht auch im Datenblatt. Also 
zwangsweise mit eingebettetem Assembler, mit reinem C geht das nicht.

von Oliver J. (skriptkiddy)


Lesenswert?

ich du schrieb:
> Wie kann ich jetzt den ATmega in den Modus schicken??

Indem du die sleep instruktion ausführst. In C gibts die aber nicht. Da 
wird dir nichts weiter übrig bleiben als Inline-assembler zu verwenden.
1
asm volatile ("sleep \n\t");

Gruß Oliver

von ich d. (tracktorad)


Angehängte Dateien:

Lesenswert?

Das heißt so müsste die LED nach einer kurzen Zeit an Port D5 ausgehen 
oder?
.. macht sie aber nicht, was ist denn noch falsch?

Danke für die Antwort

von kein C'ler (Gast)


Lesenswert?

Der sleep-Befehl schaltet keine Portpins ab. Das musst du selbst tun.
1
    while(1)
2
    {
3
    PORTD = (1<<PD5);
4
    _delay_ms(5000);
5
    PORTD &= ~(1<<PD5);
6
    asm volatile ("sleep \n\t");
7
    }

von ich d. (tracktorad)


Lesenswert?

Ok thx, aber wie kann ich überprüfen ob der im Power-down modus ist ??

von Andreas W. (geier99)


Lesenswert?

ich du schrieb:
> Ok thx, aber wie kann ich überprüfen ob der im Power-down modus ist ??

Stromaufnahme messen.

von ich d. (tracktorad)


Lesenswert?

:D gute Idee thx

damit hat sich meine Frage erledigt

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.