CPU CLKは、12MHz、24MHz、48MHzの三者択一です.そのCLKがTimerへも供給されるらしい.
CPU CLKを変更するには、CPUCS[7:8]というレジスタのCLKSPD[1:0]という2bitで行う.こういう対応になっている.defaultでは12MHzになる.
CLKSPD=0 12MHz
CLKSPD=1 24MHz
CLKSPD=2 48MHz
その5でつかったサンプルプログラムのメインルーチンにCLKSPDを設定する行を追加すると、IOポートのトグル周波数が変わります.
また、CLKOUTという外部pinに、12or24or48MHzがそのまま出てきますので、オシロで変化を観測できます.下記例ではCLKOUT=48MHzになります.
#define ALLOCATE_EXTERN
#include "fx2.h"
#include "fx2regs.h"
main()
{
// set cpu clock
// CLKSPD=0 12MHz
// CLKSPD=1 24MHz
// CLKSPD=2 48MHz
//CPUCS = CPUCS & ~bmCLKSPD ; // 12MHz
//CPUCS = ((CPUCS & ~bmCLKSPD) | bmCLKSPD0) ; // 24MHz
CPUCS = ((CPUCS & ~bmCLKSPD) | bmCLKSPD1) ; // 48MHz
OEA = 0xFF;
IOA = 0;
while(TRUE) { IOA=~IOA; }
}
0 件のコメント:
コメントを投稿