2013年5月22日水曜日

Arduino内部クロックの変更(Atmel MCUの場合)

内部クロックを変更したい。(まぁ主に抑えたい)
目的はヒマな時の消費電力削減だ。

つまり動的に変更したいのだが、

本家ではprescalerというライブラリを紹介している。


Arduino Playground - Prescaler utility library-


http://playground.arduino.cc/Code/Prescaler
これをArduino/libraryの下に置くわけだ。
まぁ、これはこれで良いのだが、実はこちらの解決法の方が応用性が高い。

ATMEGA328Pを内部発振化&クロックダウンしたい 

http://cranberrytree.blogspot.com/2012/04/atmega328p.html

Arduinoのコードからレジスタを直接叩けるとは知らなかった。
これを理解するとかなりできることが広がる。


Atmel MCUの仕様書。
http://www.avr.jp/user/DS/PDF/mega88A.pdf

これを読めばレジスタがどうなってるかわかる。