打印
[AT32F421]

定时器TMR6初始化完成后直接进中断

[复制链接]
1132|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jiang123455555|  楼主 | 2024-7-12 13:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请大牛指点,  程序上电,执行定时器TMR6初始化完成后,计数还未溢出,就直接进中断执行中断函数一次,随后就正常了。
网上找STM32的处理方式是,添加中断更新函数,并按一定的指令顺序,即可避免此次中断。
TIM_ClearITPendingBit(TIM1, TIM_IT_Update);//清除更新中断请求位
TIM_Cmd(TIM1, ENABLE);
TIM_ITConfig(TIM1, TIM_IT_Update, ENABLE);//使能定时器1更新中断

AT32的找不到类似的函数可调用,怎么搞了?

使用特权

评论回复
沙发
muyichuan2012| | 2024-7-12 14:07 | 只看该作者
对应的三个函数分别如下:
tmr_flag_clear(TMR1, TMR_OVF_FLAG);
tmr_counter_enable(TMR1, TRUE);
tmr_interrupt_enable(TMR1, TMR_OVF_INT, TRUE);

使用特权

评论回复
板凳
qintian0303| | 2024-7-12 14:12 | 只看该作者
在开启定时器之前先清一下定时器中断标志位也会进入一次中断吗?

使用特权

评论回复
地板
jiang123455555|  楼主 | 2024-7-12 15:16 | 只看该作者
muyichuan2012 发表于 2024-7-12 14:07
对应的三个函数分别如下:
tmr_flag_clear(TMR1, TMR_OVF_FLAG);
tmr_counter_enable(TMR1, TRUE);

2楼正解, 我的清除标记位放在了初始化之后。

使用特权

评论回复
5
jiang123455555|  楼主 | 2024-7-12 15:17 | 只看该作者
qintian0303 发表于 2024-7-12 14:12
在开启定时器之前先清一下定时器中断标志位也会进入一次中断吗?

我在使能之前清除标记不可以,需要在开中断之前清标记。

使用特权

评论回复
6
丙丁先生| | 2024-7-13 07:11 | 只看该作者

使用特权

评论回复
7
我喜欢打游戏| | 2024-7-15 14:53 | 只看该作者
定时器启动后,中断初始化之前清除

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝