rmajda -> proponuję ci zapomnieć o jakichś próbach zmiany taktowania procka w celu oszczędzania energii. Po to producent wymyślił kilka różnych trybów oszczędzania, że nie musisz nic sam kombinować, wystarczy się tylko dokładnie z nimi zapoznać i wykorzystać ten tryb, który ci najbardziej odpowiada.
Generalnie, jeśli na prawdę chcesz się nastawić na maksymalną oszczędność bo układ zasilany jest z baterii to też może daj sobie spokój z tym miganiem diody LED co jakiś czas. Bo po co taki gadżet. Czy ciągle ktoś będzie się na tę diodę LED patrzył ??? nie - ale zapewne ktoś będzie co jakiś czas np chciał (jeśli to już konieczne) dowiedzieć się czy procek po prostu nie "odszedł już do krainy wiecznych łowów" bo bateria się skończyła> Wtedy możesz sobie dorobić jeden klawisz - TEST, który po naciśnieciu spowoduje przerwanie i w jego obsłudze migniesz diodą LED - co będzie oznaczało że procek jest wśród żywych.
Dzięki takiemu podejściu, możesz skorzystać z możliwości wprowadzenia procka w stan najwyższej śpiączki POWER-DOWN z której wybudzić go mogą głównie przerwania zewnętrzne a w środku nic więcej nie działa bo po co? I dzięki temu rzeczywiście - długo sobie pożyje w stanie uśpienia na baterii bo w tym trybie będzie pobierał rzeczywiście kilka uA !!!
..... oczywiście możesz się uprzeć, że ty jednak chcesz koniecznie aby co jakiś czas jednak migał tą diodą i sam bez naciskania dawał oznaki, że jeszcze żyje. Wtedy możesz skorzstać z innego trybu uśpienia o nazwie POWER-SAVE. Doczytaj sobie dokładnie co podczas tej śpiączki może działać w procku. Dowiesz się wtedy, że poza innymi rzeczami może działać sobie któryś Timer i przerwanie od jego przepełnienia może także generować przerwanie, które będzie potrafiło wybudzić procka ze śpiączki .... no i masz - w takim przerwaniu (ustalasz sobie co jaki czas ma się odbyć) robisz prostą obsługę mignięcia twojej diody LED, po czym znowu dajesz prockowi zastrzyk usypiający aby po jakimś czasie Timer znowu go wybudził i tak w kółko
.... jednak ten tryb oszczędzania energii jak można się domyśleć (coś za coś) nie pozwala zejść już z poborem prądu tak nisko jak przy Power-Down, a do tego jeszcze cyklicznie pobierany prąd na miganie diodą LED - w sumie wyjdzie to sporo więcej niż przy PowerDown takim o jakim pisałem wyżej. Zależy więc jaką masz baterię, o jak długi czas podtrzymania ci chodzi itp itd
..... w związku z powyższymi metodami - sam za pomocą jakiegoś własnego pomysłu na obniżanie energii poprzez zmiejszanie taktowania - nigdy nie uzyskasz tak dobrych efektów jak nawet przy opisanym nieco gorszym Power-Save. Zawsze to już będą miliAmpery jak coś - co generalnie będzie zjadało ci baterię jak ruskie mrówki
(aha doczytałem dalej, że urządzenie ma jeszcze zliczać impulsy które nadchodzą asynchronicznie - to też mikro problem nawet dla trybu pełnego uśpienia Power-Down - bo wystarczy te impulsy kierować na któreś przerwanie, które budzi procka tylko na czas gdy impuls sobie przylecał - w przerwaniu inkrementujesz licznik tych impulsów i zapisujesz go w zależności od potrzeb do stosownej pamięci czyli RAM albo EEPROM - i też sprawa pięknie załatwiona bez kombinacji alpejskich)
mam nadzieję że teraz coś się rozjaśniło, ale i tak musisz się zainteresować datasheetem i rozdziałem
Power Management and Sleep Modes dla swojego procka
pozdrawiam