定时器,如何通过库函数让TIM3产生三个不同间隔为0.1秒、0.2秒、0.5秒钟间隔的中断

2019-07-20 18:25发布


•通过定时器TIM3分别产生间隔为0.1秒、0.2秒、
0.5秒钟间隔的中断。在中断中控制蜂鸣器发声。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
东北小辉辉
1楼-- · 2019-07-20 23:15
本帖最后由 东北小辉辉 于 2016-11-26 14:13 编辑
Dana 发表于 2016-11-26 13:36

其实这些问题,你自己挂上仿真器,马上就能发现问题所在的,写程序,一定要学会自己调试,不然的话,你这个简单的小程序,都有bug,大程序就更不用说了。

不知道你这个程序的main函数里面是怎么写的,从现象上看,我猜测是因为,你这个TIM3_Int_Init()函数在while(1)外面初始化,调用一次,进到函数里面,i只是自加了一次,自然就执行case 1:arr=4999;psc=7199; break;

你这种写法是不能达到之前所说的功能的,仔细阅读一下之前2楼的方法,自己再尝试一下,这个尝试,调试,修改,再尝试就是提高的过程了。
不知道这个问题是谁给你的,问题其实给的很巧妙的,这个就是时间触发实现多任务的最基本的思想了,好好体会一下,以后自然会用得到。
止天
2楼-- · 2019-07-21 03:22
 精彩回答 2  元偷偷看……
mack13013
3楼-- · 2019-07-21 07:41
这个直接看原子的例程就可以了。
这个说实在的,不应该问的。
taizonglai
4楼-- · 2019-07-21 10:01
TIM3定时周期设置为0.1s,然后每次进中断以后各一个变量加一,然后根据这个变量的值来判断是0.1秒?0.2秒?还是0.5秒!
Dana
5楼-- · 2019-07-21 14:28
 精彩回答 2  元偷偷看……
Dana
6楼-- · 2019-07-21 16:31
zuozhongkai 发表于 2016-11-25 14:56
TIM3定时周期设置为0.1s,然后每次进中断以后各一个变量加一,然后根据这个变量的值来判断是0.1秒?0.2秒? ...

回复错楼了,帮忙看看吧

一周热门 更多>