F2808-60的主频配置定时器0输出为何一直是2倍时间关系,请指点

2019-07-23 13:28发布

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秒)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
JY-DX-JY
1楼-- · 2019-07-24 09:27
把!去掉
米尔豪斯
2楼-- · 2019-07-24 14:59
 精彩回答 2  元偷偷看……
pmp
3楼-- · 2019-07-24 18:59
查看一下寄存器的手册
pmp
4楼-- · 2019-07-24 20:17
PLL电路控制
aaroncy79
5楼-- · 2019-07-24 21:35
感谢各位的帮忙,原来问题出在
SysCtrlRegs.PLLSTS.bit.CLKINDIV != clkindiv,看到好多例程这么写,以为是TI的特例,实际上,就是因为这个原因,导致一直处于分频的状态,也就是分频系数一直为0,感谢大家
dirtwillfly
6楼-- · 2019-07-25 01:17
aaroncy79 发表于 2016-3-30 16:56
感谢各位的帮忙,原来问题出在
SysCtrlRegs.PLLSTS.bit.CLKINDIV != clkindiv,看到好多例程这么写,以为是 ...

感谢分享

一周热门 更多>