1、主频设置
InitPll(DSP28_PLLCR,DSP28_CLKINDIV);
#define DSP28_CLKINDIV 1
#define DSP28_PLLCR 6
其他没有修改
2、定时器0设置
ConfigCpuTimer(&CpuTimer0, 60, 1); //CpuTimer0配置分频60M,定时周期1uS
Timer->CPUFreqInMHz = Freq;
Timer->PeriodInUSec = Period;
temp = (long) (Freq * Period);
Timer->RegsAddr->PRD.all = temp;
Timer->RegsAddr->TPR.all = 0; // Set pre-scale counter to divide by 1 (SYSCLKOUT):
Timer->RegsAddr->TPRH.all = 0;
3、定时器中断 ,定时1秒
interrupt void cpu_timer0_isr(void) {
CpuTimer0.InterruptCount++;
if(CpuTimer0.InterruptCount >= 1000000)
{
CpuTimer0.InterruptCount = 0;
GpioDataRegs.GPATOGGLE.bit.GPIO22 = 1; //测试下来,正常翻转
}
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
}
外部有源晶振:10M
我用示波器测GPIO22,周期一直是4秒,反复配置,都是这样,请问是什么地方有问题
(GPIO22的高电平和低电平各2秒,周期是4秒)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
SysCtrlRegs.PLLSTS.bit.CLKINDIV != clkindiv,看到好多例程这么写,以为是TI的特例,实际上,就是因为这个原因,导致一直处于分频的状态,也就是分频系数一直为0,感谢大家
感谢分享
一周热门 更多>