Forum: Mikrocontroller und Digitale Elektronik Problem mit Schreibweise: __sleep();


von M.B. (Gast)


Lesenswert?

Tachchen,

ich habe in einem Quellcode folgende Schreibweise gefunden, die mir 
nicht geläufig ist:
1
__sleep();
Was macht diese Zeile?

ich kenne die Sleep-Mode Funktion nur so:
1
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
2
sleep_mode();

Info:
C-Code in AVR Studio (Win AVR)
Controller: ATMega48

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Ich habe einen Code im Netz gesucht, bei dem __sleep() bei AVRs benutzt 
wird. Gefunden habe ich 
http://simplecircuitdesign.com/html/main_8c-source.html (um Zeile 00228)

__sleep() ist anscheinend alter Code und eigentlich ein asm volatile 
("sleep"::); Also der nackische Befehl ohne Registerinitialisierung usw.

In aktuellen avr-libc gibt es bessere Makros für diese Funktionalität. 
Die Makros kennst du schon.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Ja, ich vermute, dass das vom IAR kommt.  Der besitzt in intrinsics.h
eine Deklaration für void __sleep(void).

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.