Archiv verlassen und diese Seite im Standarddesign anzeigen : Suche Sleep-Instruction C-Code für ICCtiny 6.11A Compiler
Hallo Leute,
ich möchte einen ATtiny15l in den "Power-down"-Sleep-mode schalten. Nur klappt das irgendwie nicht? Im datasheet steht, dass der Sleep-Befehl ausgeführt werden muß. Nur wie geht das im C-Compiler ICCtiny 6.11A von imagecraft???? Wie sieht der sleep-Befehl aus im C-Code? Bitte helft mir.....
Danke Euch.
Gruß
Lalupa
trickTronic
02.06.2004, 13:29
Hei,
Ich kenn zwar den ICCtiny-Compiler nicht, aber lt. Datenblatt habe ich im MCUCR-Register folgendes gefunden:
Bit SM1 und SM0 : Hier kann man den Sleep-Mode einstellen.
Lt. Tabelle kann man zwischen folgenden wählen: Idle Mode (warten aber abarbeiten verschiedener Interrupts wie Timer...), ADC noise Reduction Mode (für Analogeingänge: Rauschfrei halten), Power-Down-Mode (abschalten bis zu einem ext. Interrupt).
Für den Power-Down-Mode muss man SM0 auf 0 und SM1 auf 1 setzen: Du musst also in diesem Register Bit 4 setzen und Bit 3 löschen.
Setzt man jetzt Bit 5 (Sleep Enable), so wird der Controller in den eingestellten sleep-Mode gehen.
char mcuReg = MCUCR;
mcuReg |= 0x10; //Bit 4 setzen
mcuReg &= ~0x08; // Bit 3 löschen
//einschalten des Sleep-Mode:
mcuReg |= 0x20; // Bit 5 setzen
MCUCR = mcureg; // ins Register eintragen
Schöne Grüße,
Alex
Hallo,
nach nervigen Probieren hab ich es dann so hingekriegt:
MCUCR = 0x30; // Enable Sleep-Mode (Power-down-Mode)
asm("sleep"); // Schalte in Power-down-Mode
Das Setzen der Bits im MCUCR-Register kann den Sleep-Mode nur "Enablen" aber nicht starten. Das macht dann der assembler-Befehl "sleep".
Am Ende dann doch ganz simpel, wenn man mal drauf gekommen ist ;-))
Trotzdem Danke für Deine Hilfe!!!!!!
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.