Microchip AVR8 用のライブラリを自作する。(CLOCK)

Last Updated on 2026-02-14 by researcher

AVR8シリーズを使うための最初のステップとも言えるクロック設定ライブラリ。

CPU/PERのクロック設定とその周波数を取得することができる。

main()の最初でsetup()を実行すると内部オシレータを最速に設定する。

【サンプルコード (Microchip Studio)】

メインクロック分周後の周波数(CLK_CPU/CLK_PER)は下記関数で取得できる。

static uint32_t Clock::frequency();

【修正履歴】
2026-02-14
タイプミスによりAVR-EBでコンパイルできなかったので修正。

2026-02-12
AVR-EBのPBDIVの仕様を勘違いしていたため修正。それに関連してpbdiv()メソッドを追加。

2026-02-09
pllfreq()の追加と、PLLステータスが変化しない不具合(仕様?)に対応するためCONFIG_CLOCK_PLL_STATUSによりPLLステータス判定を行なわないようにしてみた。

2026-02-05
PLL/XOSC32K/XOSCの許可時にstable待ちを追加。

2025-11-25
AVR-DAなどでクロック指定するsetup(Clock::FRQSEL_XXX)が24MHz固定になっていたのを修正。

【ライブラリ】

【関連投稿】
Microchip AVR8 用のライブラリを自作する。(GPIO)
Microchip AVR8 用のライブラリを自作する。(FUSE)
Microchip AVR8 用のライブラリを自作する。(CLOCK)
Microchip AVR8 用のライブラリを自作する。(RESET)
Microchip AVR8 用のライブラリを自作する。(PORTMUX)
Microchip AVR8 用のライブラリを自作する。(USART)
Microchip AVR8 用のライブラリを自作する。(RTC)
Microchip AVR8 用のライブラリを自作する。(TCA)
Microchip AVR8 用のライブラリを自作する。(TCB)
Microchip AVR8 用のライブラリを自作する。(VREF)
Microchip AVR8 用のライブラリを自作する。(DAC)
Microchip AVR8 用のライブラリを自作する。(AC)
Microchip AVR8 用のライブラリを自作する。(ADC)
Microchip AVR8 用のライブラリを自作する。(ZCD)
Microchip AVR8 用のライブラリを自作する。(SPI)
Microchip AVR8 用のライブラリを自作する。(TWI)
Microchip AVR8 用のライブラリを自作する。(MAIN)
Microchip AVR8 用のライブラリを自作する。(CONFIG)
Microchip AVR8 用のライブラリを自作する。(ALARM)
Microchip AVR8 用のライブラリを自作する。(TASK)
Microchip AVR8 用のライブラリを自作する。(CCL)
Microchip AVR8 用のライブラリを自作する。(TCD)
Microchip AVR8 用のライブラリを自作する。(DOWNLOAD)