我定时器设了1us分频时间
然后使能CC1中断
__HAL_TIM_SetCompare(&Tim3Handle,TIM_CHANNEL_1, cnt_tar); /* 设置捕获比较计数器CC1 */
__HAL_TIM_CLEAR_IT(&Tim3Handle, TIM_IT_CC1);
__HAL_TIM_ENABLE_IT(&Tim3Handle, TIM_IT_CC1); /* 使能CC1中断 */
时间到进入CC1中断
if(__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC1) !=RESET)
{
__HAL_TIM_CLEAR_IT(htim, TIM_IT_CC1);
__HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1);
s_TIM_CallBack1(1);
}
论__HAL_TIM_SetCompare 也就是CCR1的值设多少 到中断的时间始终是1us 求解是怎么回事啊 |
|
你用的哪种捕获?不知道你想说个什么?
从你发的那一点点程序什么也看不出来,要发就发工程。
如果是类似PWM输出捕获,占空比不变的情况下,两次次捕获的间隔时间肯定是固定值。
评分
查看全部评分
定时器是一直在跑 通过设置捕获比较中断 可以实现多任务定时
那出现固定1us就是正常现象呀。你这个就是类似PWM输出方式。打个比方,假如PWM周期是1000个时钟,CCR1设置为500,这时候当计数器在0到499的时候输出PWM输出1;当达到500时会产生中断,PWM输出转为0,直到999,之后再输出转为1。
设比较值前我是先读取计数值在加上我的比较值给CCR 照理应该是到比较值时中断 结果只经过1个计数值就中断了
我用标准库时好好的换成HAL库就这样了
评分
查看全部评分
经过1个计数值就中断了 也就是说 打开中断后就进中断了 怎么就正常了