📄 pll_detect.c
字号:
#include <cdefBF533.h>
#include "pll.h"
#define MEGA (1000000)
int delay_unit;
int get_clk(int* pcclk, int* psclk)
{
unsigned short tempPLLCTL, tempPLLDIV;
unsigned short MSEL, SSEL, DF, VCO, CCLK, SCLK, clkin;
tempPLLCTL = *pPLL_CTL;
tempPLLDIV = *pPLL_DIV;
//get MSEL, SSEL, DF
MSEL = ((tempPLLCTL & 0x7E00) >> 9);
SSEL = tempPLLDIV & 0x000f;
DF = tempPLLCTL & 0x0001;
if(DF == 1)
clkin = CLKIN/2;
else
clkin = CLKIN;
if(tempPLLCTL & PLL_OFF)
{
CCLK = SCLK = clkin;
}
else
{
VCO = MSEL * clkin;
CCLK = VCO >> (tempPLLDIV >> 4);
SCLK = VCO / SSEL;
}
if(pcclk)
*pcclk = CCLK * MEGA;
if(psclk)
*psclk = SCLK * MEGA;
return 0;
}
void delay_init(void)
{
int cclk;
get_clk(&cclk, 0);
delay_unit = cclk / MEGA;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -