TI中文支持网
TI专业的中文技术问题搜集分享网站

TM4C1294利用定时器产生PWM波问题

TM4C1294中利用定时器产生频率为1KHz的PWM波,利用的是在中断中进行计数,一共计1000个数,占空比自己控制。如下所示,duty=0.8,即80%的占空比

void Timer0IntHandler(void)
{
timercount++;
ROM_TimerIntClear(TIMER0_BASE, TIMER_TIMA_TIMEOUT);
if(timercount<=1000*duty)
{
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_0, 1);
}
else
{
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_0, 0);
if(timercount==1000) timercount=0;
}
ROM_IntMasterDisable();
ROM_IntMasterEnable();
}

所以为需1us进一次终端,我的计时器设置是这样的:

 ROM_TimerLoadSet(TIMER0_BASE, TIMER_A, 120000/Frequency);

这上面Frequency=1000,;但是得到的波形是周期为4ms的周期;当我设置Frequency=100时,周期是10ms,正常的。

这是什么原因?

Seven Han:

帮您把帖子转到TM4c论坛。

xyz549040622:

你需要考虑等到1个问题,你1us进去一次中断,函数执行的时间都不只1us了,要想精确点,需要把定时器进去一次中断的时间加大,ms级别进去时间就稳定多了。

赞(0)
未经允许不得转载:TI中文支持网 » TM4C1294利用定时器产生PWM波问题
分享到: 更多 (0)