trubka jako zvukovod
Halen na seznam.cz
Halen na seznam.cz
Pátek Leden 6 07:54:16 CET 2017
Všechny piny, které nepoužívám jsou po startu nastavené jako input, aby byl
zaručen jejich stav a nezvyšovaly odběr arduina.
v cyklu projedu všechny nepoužívané piny a provedu:
pinMode(i, INPUT_PULLUP);
používané piny si potom nastavím extra, dle potřeby.
poté v loop pracuji s arduinem a v době kdy jej chci uspat a snížit odběr:
zavolám: sleepNow();
pozn. Je třeba mít definovanou globální proměnnou: bool usnulo = false;
void sleepNow() {
usnulo = false;
myDelay(200);
attachInterrupt(0, my_interrupt_handler, LOW);
sleep_enable(); // enables the sleep bit in the mcucr register
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // sleep mode is set here
cli();
sleep_bod_disable();
usnulo = true;
sei();
sleep_cpu();
// THE PROGRAM CONTINUES FROM HERE AFTER WAKING UP
sleep_disable();
power_all_enable();
}
potom už jenom definice procedur:
void my_interrupt_handler()
{
if (usnulo) {
detachInterrupt(0);
}
}
void myDelay(unsigned long ms) {
unsigned long plannedMillis = millis();
plannedMillis = plannedMillis + ms;
while (plannedMillis > millis())
{
}
}
Tímto způsobem mě arduino mini usíná a probouzí zcela bez problémů. To
usínání jsem ladil možná týden, než to začalo korektně fungovat. Postupy co
jsou na netu jakoby fungují, ale po několika probuzeních se cpu zasekne v
nedefinovatelném stavu.
Honza
---------- Původní zpráva ----------
Od: Jaroslav Lukesh <lukesh na seznam.cz>
Komu: HW-news <hw-list na list.hw.cz>
Datum: 6. 1. 2017 2:37:21
Předmět: Re: trubka jako zvukovod
"Tak prosím o zveřejnění vašeho řešení upávání a probouzení.
Já používám knihovnu LowPower, která mi zatím stačí (neřeším uA, ale mA) a
probouzí se od časovače.
----- Původní zpráva -----
Od: Halen na seznam.cz
Arduino za mě OK. Jsem hrdý, že jsem si celé řešení naprogramoval sám a je
plně funkční. Nejhorší zásek byl v usínání a probouzení Arduina, kdy aby
Arduino nespotřebovávalo energii jsem přepínal režim procesoru. Všechny
příklady, nebo ukázky použití interruptu vs usínání a probouzení jsou špatně
a Arduino se korektně neprobudí. Toto jsem vyřešil a Arduino bere opravdu
minimum proudu a korektně se vždy na interrupt probudí.
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
"
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20170106/10e93ef4/attachment.html>
Další informace o konferenci Hw-list