2019-08-14 02:11发布
a3748622 发表于 2017-9-9 11:38 中断用一个就够了,假设PWM捕获模式下,你TIM1 CCR1捕获上升沿,CCR2捕获下降沿。开启CCR2中断, ...
a3748622 发表于 2017-9-9 15:49 你说的没错。TIM本来就是计数到了可以产生中断。切换电平的意思就是输出PWM,如果你想要输出PWM就要配置 ...
Rainday 发表于 2017-9-11 09:20 我在TIM5检测到下降沿就printf("0X00"),在TIM3中断里printf("0XFF")。串口输出结果为0XFF 0X00 0X00 0X ...
a3748622 发表于 2017-9-11 09:50 TIM3中断的开启与关闭有没处理好?TIM5进入中断判断为下降沿后,开启TIM3并设定ARR CCR的值,然后计数达 ...
最多设置5个标签!
只知道定时时间到会产生中断,中断也是只有你加上去了才有。不知道定时时间到会切换电平。我先看看资料
不好意思,想再问你个问题!下图是判断出下降沿然后开启单脉冲,下降沿和单脉冲并不重合,频率加到100Hz延迟更厉害了。问题出在哪呢?用的正点原子的程序,判断下降沿代码为
if (TIM_GetITStatus(TIM5, TIM_IT_CC1) != RESET)
{
if(TIM5CH1_CAPTURE_STA&0X40)
{
TIM4_Open();//单脉冲输出
TIM5CH1_CAPTURE_STA|=0X80;
TIM5CH1_CAPTURE_VAL=TIM_GetCapture1(TIM5);
TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Rising);
}else
{
TIM5CH1_CAPTURE_STA=0;
TIM5CH1_CAPTURE_VAL=0;
TIM_SetCounter(TIM5,0);
TIM5CH1_CAPTURE_STA|=0X40;
TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Falling);
}
}
}
是因为这段程序在中断里执行产生的延迟么???
上电立即进入TIM3中断,然后一直执行捕获中断。正常应该是先捕获中断再TIM3定时中断,请问这是怎么回事呢?
TIM3中断的开启与关闭有没处理好?TIM5进入中断判断为下降沿后,开启TIM3并设定ARR CCR的值,然后计数达到ARR产生更新中断后,关闭TIM3。不关闭TIM3就一直输出单脉冲。还有ARR与CCR有没有溢出?
经过我的测试排查发现,问题出在TIM3。顺序是这样的,TIM5输入捕获时间为t0,把这个t0/2传递给TIM3,TIM3只是定时器中断,另外TIM3初始化是关闭的,我还特意写了个启动的函数。我把我的代码更新了一下
一周热门 更多>