-
-
Neuer Benutzer
Öfters hier
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
-
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
-
Neuer Benutzer
Öfters hier
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!!!!!!
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen