pll.c

来自「tms320vc5509a dsp 芯片的有关例子程序」· C语言 代码 · 共 52 行

C
52
字号

#define sytemFos 12
void delay(unsigned int t)
{
	unsigned int i;

	for (; t != 0; t--)
		for (i=1000; i != 0; i--);
}
void PLLinit(unsigned int upll)
{
	unsigned int i,j,temp;
	unsigned int pllmul,plldiv;
	unsigned int min;
	ioport unsigned int *clkmd;
	clkmd=(unsigned int *)0x1c00;
	
	min = 32;
	
	for(i=0; i!=32; i++)
	{
		for(j=0; j!=4; j++)
		{
			temp = i*sytemFos/(j+1);
			if (temp > upll)
			{
				if (temp-upll<=min){min=temp-upll,pllmul=i;plldiv=j;}
			}
			else if (upll-temp<=min){min=temp-upll,pllmul=i;plldiv=j;}
		}
	}
	temp = 0x2013|pllmul<<7|plldiv<<5;
	*clkmd =temp;	/* 晶振12Hz,9Hz=0x21f3; 144MHz=0x2613*/
}
// 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
/*        1  0  0  0  0  1  1  1  1  1  0  0  1  1 */ 
/*        1  0  0  1  1  0  0  0  0  1  0  0  1  1*/
/*        1  0  1  1  1  1  1  1  0  1  0  0  1  1*/

main()
{	
	PLLinit(1);

	while(1)
	{
		asm(" bclr XF ");
		delay(1000);
		asm(" bset XF ");
		delay(1000);
	}		
}

⌨️ 快捷键说明

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