entscheidend ist das Verhältnis zwischen LED an und LED aus.
Die LED nimmt mit angenommenen 20mA deutlich mehr Strom auf, als der Tn13, selbst wenn er mit vollem Takt und so läuft. Interessant ist in dem Zusammenhang Kapitel 19 im Datenblatt.
Quintessenz:
- je geringer die Versorgungsspannung, desto geringer die Stromaufnahme (aber da hast Du mit der LED Grenzen)
- je geringer die Taktfrequenz, desto geringer die Stromaufnahme
- das meiste bringt jedoch der Sleepmode (insbesondere der PowerDown)
Daß der Controller durch den langsameren Takt langsamer arbeitet ist hier nicht relevant, da Du so oder so bis zu 2 Min warten willst, also sollte der Takt möglichst weit runter.
Da Du Dich auf'ne interne Taktquelle beschränken willst, stehen 3 Oszillatoren zur Auswahl: 9,6MHz, 4,8MHz und 128kHz (Watchdog). Vom Stromverbrauch her gilt 9,6MHz > 4,8MHz > 128kHz, ABER:
Wenn der Watchdog(oszillator) enabled ist, läuft der in allen Sleepmodes (und nimmt da Strom) - Deine Anwendung wird aber sicher die allermeiste Zeit im PowerDown verweilen. Die anderen Oszillatoren werden da hingegen gestoppt. Also wäre hier der 4,8er Oszillator der Wahl, zur Laufzeit dann mit möglichst großem MainClockPrescaler.
Also 4,8MHz/256=18,75kHz Systemtakt. Aufgrund des geringeren Systemtaktes ergeben sich natürlich für den 10ms-Software-Timer andere Werte:
Timer-Prescaler auf 1 und 186 als Compare Match Value für den CTC sollten passen.
Sleepmodus dann auf PowerDown, aktiviert werden sollte er beim Abschalten der LED.
Zum Aufwecken muß ein Interrupt am Pin mit dem Taster herangezogen werden (obs dann sinnvoller ist, die Tasterabfrage auch in einen IRQ zu packen, hab ich jetzt nicht durchdacht. Wegen Tastenprellen wohl eher nicht).
Erwähnenswert ist übrigens noch, daß der Tiny13A als picopower-Controller nochmal weniger Strom nehmen sollte als der 13-ohne-A.
Und nochwas zu Akkus: wenn Akkus verwendet werden, muß das ganze natürlich gegen Tiefentladung geschützt sein, insbesondere erübrigen sich dann StepUps mit 0,3V..0,5V (damit kannste halt Primärbatterien leerlutschen lassen).
Für Akkus gibt es AFAIK Lade (und Entlade)-ICs, die das berücksichtigen, aber da weiß Thomas vielleicht mehr.
Der Tiny43U kann die Batteriespannung übrigens messen, und bei einstellbaren Grenzen seinen Boost-Converter (und sich selbst) abschalten (wenn ich das richtig in Erinnerung hab).
Am Rande ist natürlich zu erwähnen, daß es auch ohne Mikrocontroller diverse selbst-regelnde boost-Schaltungen gibt, mit denen man LEDs aus einer quasi-leeren Batterie speisen kann (Burkhardt Kainka hat da was mit'em astabilen Multivibrator oder so auf seiner Seite). Allerdings wäre für das Timeout und den Taster noch Hirnschmalz zu investieren...