CCWO

挫けそうになるブログ #音楽 ##ライブ ##弾いてみた #programming ##Python ##C ##C++ ##VSCode ##Markdown ##TeX ##Git #電子工作 ##エフェクター ##PIC ##RX,RZ ##STM32 ##FPGA ##Raspberry Pi ##Ubuntu ##Fusion 360 #スポーツ ##筋トレ

RX621開発 クロック

RX621のクロック設定は非常に簡単になっております。
hardware_setup.cにて以下のようにClock_initialzie関数を作成し、HardwareSetup関数にて呼び出します。

hardware_setup.c

#include "iodefine.h"

void Clock_initialize(void);

void HardwareSetup(void)
{
	Clock_initialize();
}

void Clock_initialize(void)
{
	SYSTEM.SCKCR.BIT.ICK = 0x0;	// ICLK: XTAL*8
	SYSTEM.SCKCR.BIT.PCK = 0x1;	// PCLK: XTAL*4
	SYSTEM.SCKCR.BIT.BCK = 0x2;	// BCLK: XTAL*2
}

となります。
SCKCRレジスタにてICLK、PCLK、BCLKのクロックを入力クロックから何倍PLLするか設定するだけです。
ただし、ビット単位でアクセスする場合はこの順でないと初期化できないので注意!レジスタ単位でアクセスする場合は問題ありません。