mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme mit Sleep Mode


Autor: AVRFreak (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: AVRFreak (Gast)
Datum:

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

Autor: Conlost (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

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

Bye

Autor: AVRFreak (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was meinst du mit Sleep! hmmm....
Ich verwende den CodevisionAVR.

Autor: Conlost (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

dann versuche mal:

#asm("sleep")

Bye

Autor: AVRFreak (Gast)
Datum:

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

Autor: Conlost (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: leo9 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Reiner (Gast)
Datum:

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

Autor: Conlost (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: leo9 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.