Jak zaprogramować tryb uśpienia dla Arduino? Jakie są dobre techniki uśpienia procesora, szczególnie w przypadku projektów zasilanych bateryjnie, ale budzenie się tylko w razie potrzeby?
Jak zaprogramować tryb uśpienia dla Arduino? Jakie są dobre techniki uśpienia procesora, szczególnie w przypadku projektów zasilanych bateryjnie, ale budzenie się tylko w razie potrzeby?
Odpowiedzi:
avr / sleep.h może mieć to, czego potrzebujesz - dokumentacja znajduje się na stronie http://www.nongnu.org/avr-libc/user-manual/group__avr__sleep.html
Istnieją jednak pewne ostrzeżenia dotyczące uśpienia procesora :)
Mam nadzieję że to pomoże.
pamiętaj, że w zależności od trybu uśpienia na twoim arduino działa kilka źródeł przerwań. timer0 generuje przerwanie przepełnienia, które obudzi twoje arduino mniej więcej co milisekundę, a uart wygeneruje przerwanie za każdym razem, gdy nadejdzie postać. ... i, oczywiście, są zewnętrzne przerwania na pinach 2 i 3, które możesz włączyć lub nie, korzystając z funkcji attachInterrupt.
po wystąpieniu przerwania szkic zostanie przebudzony ze snu, a po zakończeniu obsługi przerwania będzie kontynuowany od miejsca, w którym poszedł spać. rozwiązaniem tego jest skonfigurowanie szkicu, aby po każdej pętli znów spał, chyba że naprawdę jest czas, aby się obudzić.
tutaj, moja biblioteka snu arduino