小弟在学习F28335,对controlSUITE中Example_2833xEPwmTimerInt例程Dsp2833x_SysCtrl.c 配置PLL里边的一段代码不是很明白,请教一下各位。
代码如下:
void InitPll(Uint16 val, Uint16 divsel) {// Make sure the PLL is not running in limp modeif (SysCtrlRegs.PLLSTS.bit.MCLKSTS != 0){// Missing external clock has been detected// Replace this line with a call to an appropriate// SystemShutdown(); function.asm("ESTOP0");}if (SysCtrlRegs.PLLSTS.bit.DIVSEL != 0){EALLOW;SysCtrlRegs.PLLSTS.bit.DIVSEL = 0;EDIS;}// Change the PLLCRif (SysCtrlRegs.PLLCR.bit.DIV != val) //疑问,这里 val 是不是0?以前学习的C语言全部还给老师了,汗{EALLOW;// Before setting PLLCR turn off missing clock detect logicSysCtrlRegs.PLLSTS.bit.MCLKOFF = 1;SysCtrlRegs.PLLCR.bit.DIV = val;EDIS;DisableDog();while(SysCtrlRegs.PLLSTS.bit.PLLLOCKS != 1){// Uncomment to service the watchdog// ServiceDog();}EALLOW;SysCtrlRegs.PLLSTS.bit.MCLKOFF = 0;EDIS;} if((divsel == 1)||(divsel == 2)) { EALLOW;SysCtrlRegs.PLLSTS.bit.DIVSEL = divsel;EDIS; } if(divsel == 3) { EALLOW;SysCtrlRegs.PLLSTS.bit.DIVSEL = 2;DELAY_US(50L);SysCtrlRegs.PLLSTS.bit.DIVSEL = 3;EDIS;} }
代码里边的val是不是0,以前学习C语言的时候,int val; 这应该是一个不确定的值,一般会这样 int val=0;
这里没有赋值为0,是为什么呢?
Kevin2014:
回复 rookiecalf:
谢谢,你这么一说,瞬间理解了。C语言忘记得也差不多了