📄 tm_clk.c
字号:
#include "def.h"
#include "utils.h"
#include "44b.h"
#include "option.h"
struct{
U32 mclk;
U32 pclk;
U32 sclk;
U32 freq;
} ClkPara;
static void set_pll(void)
{
U32 i, j;
if(ClkPara.mclk>255)
ClkPara.mclk = 255;
if(ClkPara.pclk>63)
ClkPara.pclk = 63;
if(ClkPara.sclk>3)
ClkPara.sclk = 3;
j = ClkPara.sclk;
i = 1;
while(j--)
i *= 2;
ClkPara.freq = (EXT_OSC_CLK*(ClkPara.mclk+8))/((ClkPara.pclk+2)*i);
if((ClkPara.freq>=90000000)||(ClkPara.freq<EXT_OSC_CLK)) {
ClkPara.mclk = 114;
ClkPara.pclk = 8;
ClkPara.pclk = 1;
ClkPara.freq = EXT_OSC_CLK*122/20;
}
rPLLCON = (ClkPara.mclk << 12) | (ClkPara.pclk << 4) | ClkPara.sclk;
}
void SystemClockInit(void)
{
ClkPara.mclk = 88;
ClkPara.pclk = 8;
ClkPara.sclk = 1;
set_pll();
}
U32 GetCpuClock(void)
{
return ClkPara.freq;
}
U32 GetMasterClock(void)
{
return GetCpuClock();
}
void Delay(U32 ms)
{
U16 i;
for(i=0;i<3000*ms;i++);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -