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
> 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&item_id=4611
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.
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?
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.