Gast
#4130112
Hallo, ich bastle seit einiger Zeit mit dem Attiny84 (auf Arduino IDE) zunächst mal auf einem Steckbrett mit LEDs herum und habe einen Stromsparmode definiert, wo der WDT den Avr nach 1s aus dem Schlaf reisst. Die Zielanwendung soll locker 1 Jahr ohne Batteriewechsel auskommen. void GotoSleep() { wdt_enable(WDTO_1S); // Watchdog auf 1S einstellen und Reset wdt_reset(); MCUSR &= ~(1<<WDRF); // Reset Flag löschen WDTCSR |= _BV(WDIE); // Watchdog löst jetzt IRQ aus, keinen Reset set_sleep_mode(SLEEP_MODE_PWR_SAVE); // Fast Tiefschlaf Mode bestimmen sleep_enable(); // Sleep aktivieren power_all_disable(); // Alles abschalten sleep_mode(); // Schlafen legen...chrrr.... // Motor an und Aufwachen! sleep_disable(); // Sleep zuerst abschalten MCUSR &= ~(1<<WDRF); // Reset Flag löschen wdt_disable(); // Watchdog auch aus power_timer0_enable(); // Nur millis(), delay(...) usw wieder ein } Aufwachen soll er mit einer fallenden Flanke am INT0. Klappt auch soweit, allerdings .... im Power Idle Mode tut er das sofort, also wenn ich mit dem Draht auch nur die Masse mal antippe. B<ei Power Down udn Power Save muss ich wirlich ca 100ms den INT0 Pin auf Masse ziehen. Auf Peaks reagiert er gar nicht. Ist so ok so? Wäre nämlich nett wenn er aus Tiefschlaf auch sofort wieder rauskäme.