mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Kein Aufwachen aus Power Down


Autor: Dennis M (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wollte den Power Down modus nutzen. Habe den code aus dem Tutorial 
übernommen, für einen ATmega32.
Setze das DDRD Register auf 226 (PD2=0) Eingang.
PORTD 255.

Nun falle ich in den Schlafmodus und komm nicht mehr raus. Habe am INT0 
immer ein HIGH Pegel, bis ich diesen auf Masse lege.

Der Code ohne die "sleep_mode();" Funktion wird einwandfrei ausgeführt, 
auch die INT0 Interrups.

Woran könnte es liegen?

MCUCR = (1<<ISC00);//any (falling) edge -> interrupt
PORTD=255;
DDRD=226;//INT0==0, input
ACSR = 0x80;    // Analogcomparator ausschalten

while(1) 
  {
 
        GICR |= (1 << INT0);            // externen Interrupt freigeben
 
        set_sleep_mode(SLEEP_MODE_PWR_DOWN);
        sleep_mode();                   // in den Schlafmodus wechseln
 
        // hier wachen wir wieder auf
        GICR &= ~(1 << INT0);           // externen Interrupt sperren
                                        // WICHTIG! falls der externe LOW Puls an INT0
                    // sehr lange dauert
    _delay_ms(100);
    sprintf(txbuf,"T%sSYNC",source_ID);
    rf12_txmode();

    tx_cnt=strlen(txbuf);  //
    uart_puts(txbuf);
    uart_puts("\r\n");
    tx_status=0;            // zu sendender Status
    tx_packet(0);
  } //while (1)

ISR(INT0_vect) 
{

  external_int0=5;//send ID five times

  uart_puts("\t\t\tint0\r\n");
}

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dennis M schrieb:
> MCUCR = (1<<ISC00);//any (falling) edge -> interrupt

Das Datenblatt schreibt:
>an External level interrupt on INT0 or INT1

Was wollen uns diese Worte sagen??

Oliver

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Dennis M (Gast)

>Woran könnte es liegen?

>MCUCR = (1<<ISC00);//any (falling) edge -> interrupt

Beim Mega32 muss man auf low LEVEL Interrupt konfigurieren! Siehe 
Artikel Sleep Mode.

MFG
Falk

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ein "sei()" wäre nicht schlecht :D, dann klappts auch mit dem Interrupts

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Kein Aufwachen aus Power Down

Das kenne ich, geht mir jeden Morgen so ähnlich....

Autor: Dennis M (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also, wie gesagt, ich habe mich nach dem Tutorial gerichtet. Dor steht 
geschlieben

MCUCR &= ~0x3;              // levelgesteuerter Interrupt an INT0

also, ISC01 und ISC00 auf 1 gesetzt.

um aus dem Power Down Modus aufzuwachen, bin jetzt bissi verwirrt. Aber 
danke, habe jetzt alles auf 0 gesetzt, und INT0 funktioniert nun.

Gruß

Dennis

Autor: Dennis M (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein. löscht meinen letzten Beitrag... ich habs verpeilt!!!

Autor: Timo P (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ist schon klar, wenn du nicht richtig aufwachen kannst, dann bist du 
verpeilt...

Autor: Timo P (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
double   sin (double __x)

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und es geht auch ohne "sei()"? komisch

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Timmo H. (masterfx)

>und es geht auch ohne "sei()"? komisch

Nöö, ich vermute mal, dass der Code oben weder vollständig noch direkt 
kopiert ist, sonder halb kopiert und halb neu eingetippt. :-(

MFG
Falk

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.