Forum: Mikrocontroller und Digitale Elektronik Probleme mit Sleep Mode


von AVRFreak (Gast)


Lesenswert?

Hallo!

Ich will den AVR90S8535 nach bedarf zum schlafen bringen, so
dass er weniger Strom Verbraucht.
Kann mir jemand in C ein Beispiel geben wo ich das mal anschauen
kann???

Bye

von AVRFreak (Gast)


Lesenswert?

Gibt es hier niemand im Forum der mir dabei helfen kann???
Für die Unterstützung wäre ich sehr dankbar.

von Conlost (Gast)


Lesenswert?

Hallo,

ich kann kein C, aber versuch es einfach mal mit  sleep.

Bye

von AVRFreak (Gast)


Lesenswert?

Was meinst du mit Sleep! hmmm....
Ich verwende den CodevisionAVR.

von Conlost (Gast)


Lesenswert?

Hallo,

dann versuche mal:

#asm("sleep")

Bye

von AVRFreak (Gast)


Lesenswert?

So wenn ich dies jetzt im Programm so ausführe,
wie bekomme ich den AVR wieder zum erwecken????

von Conlost (Gast)


Lesenswert?

Diesen Befehl sollte man anwenden, wenn der Processor grade nix
zu tun hat, also in einer Schleife auf etwas wartet.
Das könnte z.B. ein interrupt sein vom Timer, I/O Port,
UART, AD-Wandler usw.
Bei dem Befehl fehlte glaube ich noch etwas.

   MCUCR = 0x38;           //entering sleeping mode: power save mode
        #asm("sleep")

So sollte es gehen.
Aber ich hab kein Ahnung von C.

von leo9 (Gast)


Lesenswert?

ist es wirklich so schwierig google, die Suche oder das Datenblatt zu
verwenden ??

AT90S8535, Seite 30:
To enter any of the three sleep modes, the SE bit in MCUCR must be set
and a SLEEP instruction must be executed.
SM1 und SM0 im MCUCR bestimmen den sleep-Mode.

Aufwecken kannst du den uP nur durch Interrupts.
Idle Mode: uP reagiert auf alle Ints
Power down Mode: uP reagiert nur auf externen Int. und Watchdog
Power Save Mode: wie Power down, zusätzlich tmr2, falls extern
geclocked.

grüsse leo9

von Reiner (Gast)


Lesenswert?

WINAVR:
set_sleep_mode(SLEEP_MODE_IDLE);/* set sleep mode 0*/
sleep_mode();

von Conlost (Gast)


Lesenswert?

Hallo leo9,

ist schon klar, aber die Frage war, wie man das in C programmiert.
Nun sag es AVRfreak mal wie es genau geht, bitte.
Ich bekomme von C-Code immer Kopfschmerzen und Knoten im Hirn. :-)

Es grüßt,
Arno

von leo9 (Gast)


Lesenswert?

Hallo Conlost,
endlich mal ein Mitstreiter, mir gehts mit der c-Syntax genauso. Leider
muß ich mich jetzt aber auch mit c auseinandersetzen, es scheinen
einfach die effektivsten Compiler für AVRs zu sein.

@AVRFreak:
schau mal in die Hilfe von Codevision:
#include <sleep.h>

an der richtigen Stelle im Programm:
sleep_enable();
idle();      // oder powerdown() oder powersave()
             //oder standby() oder extended_standby()

die genauen Beschreibungen dieser fünf Befehle schreibe ich jetzt aber
nicht aus dem Hilfefile ab ;-)

grüsse leo9

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.