mega8 powermodes

Gast #274282
Lesenswert?
• ▲
▼
Jo hab ich auch schom drangedacht, muss ich aber erst umlöten (Zuhause).
Melde mich dann morgen wieder (FH). Bleibt eigentlich ein high level im
powerdownmode auf high oder fällt der auf low ich würde annehmen der
fällt auf low?
Gast #274283
Lesenswert?
• ▲
▼
Hallo Patrick,

der Tip war gut es funktioniert. Warum schreiben die das nicht in das
Datenblatt.

Auch die anderen Modes werden nur mit Low Level Interrupt beendet. Aus
diesem Grund war ich davon ausgegengen, dass mein Programm nicht
funktioniert.
Irreführend ist auch das Datenblatt von wegen Triggern des Interrupt
Eingangs. Ich hab noch nie gehört dass man mit Low Level was triggern
kann. Im Datenblatt meint man aber wahrscheinlichh den Umstand, dass es
Tristate Eingänge sind die man auf High Level halten muss um dann auf
Low Level zu "triggern".
Jedenfalls funktioniert es jetzt beim kleinen Demoprogramm und ich
hoffe auch beim großen. also Patrik, vielen Dank nochmal für die
schnelle Hilfe. Was ich auch merkwürdig finde ist, dass ein high
geschalteter Eingang im Powerdownmode high bleibt und nicht auf low
fällt. Aber dass ist ja nicht so tragisch!
Gast #274285
Lesenswert?
• ▲
▼
Hallo Patrick,

ich denk, dass ist auch ganz sinnvoll, falls irgendetwas eingeschaltet
bleiben soll und man nicht an den Tarnsistoren oder was sonst noch so
dranhängt rumlöten will, hätte aber echt gedacht der würde automatisch
auf low fallen. Bis dann. Bin jetzt weg.
Gast #274288
Lesenswert?
• ▲
▼
Hallo TravelRec,

Sonderfall ist schon klar aber bei anderen modes wo die clock egal ob
extern oder intern läuft (z.B.: idle) kommt er auch nicht mehr aus den
powermodes (hier dann idle) raus. Es funktioniert immer nur mit low
level. Aus dem idle mode z.B. müßte er alleine schon bei einem
Intterrupt eines timers rauskommen tut er aber definitiv nicht. Das war
sicher nicht im Sinne des Erfinders.
#274289
Lesenswert?
• ▲
▼
Hallo mike,

"Aus dem idle mode z.B. müßte er alleine schon bei einem
Intterrupt eines timers rauskommen tut er aber definitiv nicht."

Aus dem Idle mode kommt er bei einem Interrupt des Timers 2 raus und
das tut er definitiv ;-)

Schau dir mal die Tabelle 14 im Datenblatt des Mega8 an. Ich finde da
ist alles auf einen Blick dargestellt.

Gruß
Markus
#274290
Lesenswert?
• ▲
▼
Jede Interruptquelle kann den Mega8 aus dem Sleep-Mode "IDLE"
aufwecken.

Wäre das nicht so, dann würde keines meiner Programme (Assembler)
funktionieren. Denn ich benutze grundsätzlich einen Timer-Interrupt für
die Steuerung des Programmablaufs (mal Timer0-OVF, mal Timer1-Comp) und
schicke den AVR in den Sleepmode, sobald alle Jobs der Mainloop
abgearbeitet sind.

...
Gast #274291
Lesenswert?
• ▲
▼
Hallo Leute,

bin Anfänger! und benutze den CodeVision Compiler evaluation version.
Habe im Programm auch den timercompare interrupt drin.Kommt definitiv
im idle mode nicht wieder hoch, obwohl ja dann die clock laüft und der
timer permanent weiter zählen soolte und dann seinen interrupt auslöst
der ja den mega8 wecken sollte. Auch läuft das Programm jetzt ganz gut
nur wenn ich über die interruptgesteuerte serielle schnittstelle daten
sende und direkt danach in den sleepmode gehe sendet er nicht das ganze
array oder den bufferinhalt sondern verschluckt ein paar zeichen. Die
sendet er dann wenn ich ihn mit extint Taste wieder wecke? Liegt das an
der priorität der interrupts?

Man kann beim codevision unter c nur folgende routinen benutzen:
sleep_enbable();
powerdown(); oder idle() usw.

Parameter kann man da nicht eingeben!Routine is void und parameter is
void.

...
#274292
Lesenswert?
• ▲
▼
Die Sleepmodes stellt man ein, indem man die entsprechenden Bits im
Steuerregister MCUCR setzt bzw. löscht (siehe Datenblatt des Mega8).

Dein Compiler kann da auch nix anderes machen, es geht halt nur so. So
ein AVR kann nämlich weder C noch BASCOM, er kann nur Maschinencode und
mit Maschinencode (bzw. der 1:1 Umsetzung namens Assembler) geht es
definitiv!

Wenn es bei dir nicht geht, machst du sicherlich etwas falsch. Oder
aber dein Compiler taugt nix, was ich aber kaum glauben kann.

...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren