初学者分享今天通过按键改变频率的方波的思路

2019-08-19 18:34发布

本帖最后由 晓枫 于 2017-5-4 21:08 编辑

      菜鸟一枚,刚花了几个小时才做出通过按键改变频率的方波。
      先说实现的要求:输出100HZ到10KH的方波,通过1KHZ以下按键以100HZ为单位调节。 1KHZ以上以1KHZ为单位调节。
      叙述一下整个思考的过程,开始以为是个简单的代码,就打算直接在main函数里面通过delay()函数改变LED0来实现方波的改变,的确可以实现一次方波的准确,但main函数里指令很多,每个都要消耗时间,通过按键调解时就发现是不可能以100HZ变化的。所以想到了用定时器产生方波,在中断函数里面改变LED0的电平,然后将按键放在main函数里面,以为这样就可以了,但还是不行,最后想到因为中断初始化只执行一次,按键的调节是没有作用了,改变不了中断服务的时间,最后想到将按键检测放到中断函数里面,按键一次初始化执行一次,在按键里面进行方波频率的修改,最后达到了要求。
     菜鸟知道是很简单的程序,但也一定会有初学者不太懂,拿出来给大家分享,也希望大神有好的方法和思路分享出来。感激不尽!
     下面是STM(mini)版的代码。
      分频方波.zip (3.08 MB, 下载次数: 206) 2017-5-4 21:08 上传 点击文件名下载附件
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
晓枫
1楼-- · 2019-08-19 23:21
自己顶一下!
八度空间
2楼-- · 2019-08-20 02:59
 精彩回答 2  元偷偷看……
dawang
3楼-- · 2019-08-20 05:48
简直不能看,就不能把定时器初始化的函数里的入口参数拿出来,在主函数里赋值吗
晓枫
4楼-- · 2019-08-20 10:40
dawang 发表于 2017-5-5 18:12
简直不能看,就不能把定时器初始化的函数里的入口参数拿出来,在主函数里赋值吗

你试一下在主函数里面赋值,就会只调用一次,就算按键也变不了方波频率,如果可以,你分享出来,谢谢
晓枫
5楼-- · 2019-08-20 14:40
八度空间 发表于 2017-5-5 09:29
不错,很好,谢谢分享!

共同学习
dawang
6楼-- · 2019-08-20 17:56
晓枫 发表于 2017-5-5 20:04
你试一下在主函数里面赋值,就会只调用一次,就算按键也变不了方波频率,如果可以,你分享出来,谢谢

原子的代码PWM调灯光的那个

一周热门 更多>