本帖最后由 bobo5650 于 2011-10-21 15:15 编辑
有一个设计使用了TIM1的2个通道,分别做输入捕捉和输出比较。现在发现有时候会有输入捕捉中断丢失的问题,具体表现是:50HZ的输入,有时候会被捕捉成25HZ的频率,一般情况还是50Hz。
不知道是不是ISR的问题?
ISR是这样的:
isrIpCapCmp()
{
int8u bIntSrc;
bIntSrc = TIM1->SR1;
if ((bIntSrc & TIM1_FLAG_CC1) == TIM1_FLAG_CC1)
{
isrIpCap();
}
if ((bIntSrc & TIM1_FLAG_CC2) == TIM1_FLAG_CC2)
{
isrOpCmp();
}
}
不知道有没有人遇到过类似问题一起讨论一下?
补充:在算频率的时候检查了是否有over capture,结果是没有。 |