Hallo zusammen ! kann mir jemand sagen ob es für die programmierung von atmel-controllern einen C-Befehl gibt der dem befehl "sleep" in assembler entspricht oder wie man den "sleep"-befehl in den C-Quellcode einbinden kann? wie kann ich den controller in einen sleep-mode versetzen? gruss, reza
Hallo Resa, unter Winavr #include <avr/sleep.h> //Einstellen und aktivieren des Sleepmodes mit: set_sleep_mode(MODE); //schau für diese Beschreibung mal in sleep.h //Schlafen gehen mit: sleep_mode(); alternative: #define sleep() asm volatile ("sleep") Aufruf mit: sleep(); Aktivierung des Sleep modes von Hand. asm volatile bedeutet, das der in Klammern stehende Befehl ein Assemblerbefehl ist und somit für den C-Präprozessor tabu ist. Gruß Marcus
Hi Markus! Schönen Dank für die Information ! war mir gar nicht bewusst dass es ne sleep-header gibt. gruss reza
Schau mal hier: http://www.nongnu.org/avr-libc/user-manual/group__avr__sleep.html Da ist das alles ein wenig übersichtlicher beschrieben, als in der header-Datei. Gruß, Patrick...
Mit avr-libcs sleep.h ein wenig aufpassen. Funktioniert nicht mit allen AVR Controllern. Die "sleep-bits" liegen teilw. abh. vom Controller in anderen Registern und an anderen Positionen. Ein entsprechender bug-report fuer avr-libc liegt bei savannah vor. Auf jeden Fall funktionieren die Funktionen aus sleep.h in avr-libc bis version 1.0.4 nicht mir dem ATmega169. Im Zweifel "old school": also Bits in den entsprechenden Registern lt. Datenblatt setzen und "sleep" ueber inline-assembler aufrufen. Martin
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.