mikrocontroller.net

Forum: Compiler & IDEs Unterschied zwischen sleep_cpu () und sleep_mode () ?


Autor: derbrain (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
in der avr/sleep.h gibt es ja die Funktionen sleep_cpu (void) und
sleep_mode (void). Erklärung bei beiden: "Put the device into sleep
mode." Was ist denn da der Unterschied? Und gab es nicht auch mal
einfach sleep()?

Grüße
--derbrain

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Erklärung bei beiden: "Put the device into sleep
> mode." Was ist denn da der Unterschied?

Du hast nur den Teil der Erklärung selektiv für dich gelesen,
der gleich ist zwischen beiden.  Der Unterschied ist in dem
Teil der Erklärung dokumentiert, der nicht gleich ist:
sleep_cpu() ist der reine SLEEP-Befehl, der Aufrufer muss sich
um SE selbst kümmern.  Das zu haben war reiner ,,Kundenwunsch'':

https://savannah.nongnu.org/patch/?func=detailitem...

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
p.s.:

> Und gab es nicht auch mal einfach sleep()?

In Unix, ja.  Wartet die entsprechende Anzahl an Sekunden.  Das
ist (weil's Hardware braucht) jenseits des Aufgabengebietes der
avr-libc.  Damit man es nicht verwechselt, hat Marek seinerzeit
die entsprechende avr-libc-Funktion sleep_mode() genannt.

Autor: derbrain (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antworten :)
Ich hatte gedacht das mit dem SE fehlt da einfach, weil im Datenblatt
steht, dass man das immer setzen und wieder deaktivieren soll. Den Sinn
hab ich nicht ganz verstanden, weil als Begründung dasteht, dass der
Controller nur dann schlafen soll, wenn es der Programmierer auch will.
Und ich nehme an, wenn man sleep_mode() schreibt, dann will man das auch
haben... Ist das mit dem SE also hinfällig?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, das ist mit dem SE nicht hinfällig.  Siehe den patch
comment, es gab halt nur Leute, die den sleep gern separat
vom SE erledigen können wollten, um zwischendrin ein sei
noch zu haben.

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.