mikrocontroller.net

Forum: Compiler & IDEs Sleep Mode einschalten in AVR-GCC


Autor: tomi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Wollte gern in den Power Down modus gehen.
In Datenblatt steht "execute SLEEP instruction".
Benutze den AVR-GCC compiler.
Wie führe ich die "SLEEP" instruction aus?

DANKE!!!

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#include <avr/sleep.h>

...
   set_sleep_mode(SLEEP_MODE_PWR_DOWN); /* je nachdem */
...
   sleep_mode();

Autor: Tomi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HI!!

Danke, erstmal!

Wollte gern auf den ext level intterupt wieder aufwachen.
Kann mir jemand sagen wie lange der level interrupt anliegen muß
bis der Controller aufwachen kann?

BYE!!!

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, das Datenblatt.

Insbesondere muß er so lange anliegen, daß der Oszillator
ordentlich angelaufen ist, wenn Du den abgeschaltet hast.  Du
solltest daran denken, daß die Fuses in aller Regel standardmäßig
so gesetzt sind, daß sie mit konservativer Anlaufzeitabschätzung
des Oszillators arbeiten (also: sehr lange).  Ggf. mußt Du das
also überdenken.

Deine Ausrufezeichentaste klemmt, bitte reparieren. ;-)

Autor: tomi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nochmals Danke!

Frage: Warum diese verschiedenen aufwachzeiten?

Was hat das für einen genauen Hitergrnd?

BYE!

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daß der Hersteller des Chips nicht wissen kann, wie lange Dein
Oszillator benötigt, bis er stabil schwingt.  Quarzoszillatoren
benötigen einige Zeit, bis sie sich sauber eingeschwungen haben,
Keramikresonaten auch (aber i. d. R. weniger), RC-Oszillatoren
schwingen vergleichsweise schnell an (dafür weniger langzeitstabil).

Autor: Tomi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Jau, Danke hast mir sehr geholfen.

BYE!!

Autor: Dahohl Dahhl (dahohl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo zusammen,

habe ebenfalls das problem, das ich meinen atmega16 nicht in den sleep 
modus bringe :-(

hier ein auszug meines Programmes:

void main(void)
{
  DDRA = 0x00;
  PORTA = 0x00;


  set_sleep_mode(SLEEP_MODE_PWR_DOWN);

  PORTA = 0xFF;
  wait_ms(500);
  sleep_mode();

  while(1);


}

am PortA habe ich 8 led's die nach dem sleep befehl eigentlich dunkel 
sein sollten, oder?
aber sie leuchten dauernd.
was mach ich falsch?

wäre froh um jede hilfe!
habe schon einige artikel in diesem forum über dieses problem gefunden 
aber es hat leider nie funktioniert.

Gruess dahohl

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dahohl Dahhl wrote:

> habe ebenfalls das problem, das ich meinen atmega16 nicht in den sleep
> modus bringe :-(

Ist doch aber kein Grund, einen uralten Thread wieder aufzuwärmen.

> am PortA habe ich 8 led's die nach dem sleep befehl eigentlich dunkel
> sein sollten, oder?

Wie kommst du auf diesen Dampfer?

Die IO-Pins bleiben auch im Schlaf in ihrem Zustand, und das ist gut so.

Autor: Dahohl Dahhl (dahohl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
warum ich auf diesen uralten Thread gekommen bin:
habe eine lösung für mein problem gesucht und hab mich hier 
angeschlossen da es vom thema her gut passte.

habe nun den porta mal auf 0x00 gsetzt.
habe vor dem sleepmodus eine stromaufnahme von ca. 30mA und im 
sleepmodus ca. 7mA. ist das realistisch?

Gruss dahohl

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dahohl Dahhl wrote:

> habe vor dem sleepmodus eine stromaufnahme von ca. 30mA und im
> sleepmodus ca. 7mA. ist das realistisch?

Dieser hohe Strom ist wohl durch die restliche, uns unbekannte 
Schaltung bedingt.

Im eigentlichen Sleep Mode SLEEP_MODE_PWR_DOWN sollte der µC allein 
nur rund 0,3μA benötigen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.