読者です 読者をやめる 読者になる 読者になる

CCWO

挫けそうになるブログ

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するか設定するだけです。
ただし、ビット単位でアクセスする場合はこの順でないと初期化できないので注意!レジスタ単位でアクセスする場合は問題ありません。