STM32
直播中

哔哔哔-

9年用户 1280经验值
擅长:电源/新能源
私信 关注
[问答]

__HAL_TIM_SetCompare也就是CCR1的值设多少?到中断的时间始终是1us正常吗?

我定时器设了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  求解是怎么回事啊

回帖(1)

李秀荣

2024-4-29 10:48:56
定时器是一直在跑 通过设置捕获比较中断 可以实现多任务定时
那出现固定1us就是正常现象呀。你这个就是类似PWM输出方式。打个比方,假如PWM周期是1000个时钟,CCR1设置为500,这时候当计数器在0到499的时候输出PWM输出1;当达到500时会产生中断,PWM输出转为0,直到999,之后再输出转为1。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分