在线时间2 小时
UID420134
注册时间2013-3-9
NXP金币0
该用户从未签到
新手上路

- 积分
- 36
- 最后登录
- 1970-1-1
|
PIT中断程序如下:
void timer0_isr(void)
{
if (PIT_TFLG0 & PIT_TFLG_TIF_MASK == PIT_TFLG_TIF_MASK)
{
PIT_TFLG0 |= PIT_TFLG_TIF_MASK;
FL1 = BGET(GPIOE_PDIR,5);
FL2 = BGET(GPIOE_PDIR,4);
FL3 = BGET(GPIOE_PDIR,3);
FR3 = BGET(GPIOE_PDIR,2);
FR2 = BGET(GPIOC_PDIR,13);
FR1 = BGET(GPIOC_PDIR,12);
if(time_counter >= 60000)
{
time_counter = 0;
}
else
{
time_counter++;
}
}
}
其中time_counter是全局无符号16位整数;
运行程序的时候发现,PWM波形的占空比会有一定幅度的跳变,不稳定;当把 “time_counter++;”这句注释掉PWM波形就稳定了。 在该程序中,本意想用 time_counter来计计时器终端数以此来获得一个较为精确地时间计数,请问 “time_counter++;”这句为什么会影响到PWM波形,有什么解决办法? PWM波形使用的是TPM模块产生。
|
|