pll_detect.c

来自「bf533平台图像采集程序」· C语言 代码 · 共 56 行

C
56
字号
#include <cdefBF533.h>
#include "pll.h"

#define MEGA (1000000)

int delay_unit;


void delay_init()
{
	int cclk;
	
	get_clk(&cclk, 0);
	
	delay_unit = cclk / MEGA;
}

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;
}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?