找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3023|回复: 12
收起左侧

单片机应该不能只通过延时函数让两个输出口输出不同频率的波形吧?

[复制链接]
ID:803014 发表于 2021-1-20 11:47 | 显示全部楼层 |阅读模式
如题,有大佬过来解答一下吗?
回复

使用道具 举报

ID:235200 发表于 2021-1-20 12:13 | 显示全部楼层
可以用定时计数器确定波形周期,比用延时函数好
回复

使用道具 举报

ID:332444 发表于 2021-1-20 12:36 | 显示全部楼层
定时也是延时的一种形式而已
回复

使用道具 举报

ID:390416 发表于 2021-1-20 13:04 | 显示全部楼层
当然是可以的,下面这个是最小公倍数的算法。简简单单的三个IO口输出波形
51hei截图20210120130326.png
回复

使用道具 举报

ID:803014 发表于 2021-1-20 14:02 | 显示全部楼层
csmyldl 发表于 2021-1-20 12:13
可以用定时计数器确定波形周期,比用延时函数好

嗯……为了精准延时我延时函数就是用定时器中断写的,基本能输出我想要的波形,但是如果我想同时输出两个不同的波形应该怎么办?
回复

使用道具 举报

ID:803014 发表于 2021-1-20 14:03 | 显示全部楼层
xianfajushi 发表于 2021-1-20 12:36
定时也是延时的一种形式而已

确实如此
回复

使用道具 举报

ID:752974 发表于 2021-1-20 14:34 | 显示全部楼层
用一个定时精度高一点的定时器,如定时1uS,在中断里计数,根据你  要的频率,处理计数值及标识,在主循环中判断不同的标识控制IO口。
回复

使用道具 举报

ID:775776 发表于 2021-1-20 14:44 | 显示全部楼层
stm32 有专门pwm接口
回复

使用道具 举报

ID:330938 发表于 2021-1-20 16:39 | 显示全部楼层
看芯片带不带硬件PWM,没有的话只能软件pwm
回复

使用道具 举报

ID:803014 发表于 2021-1-20 16:51 | 显示全部楼层
munuc_w 发表于 2021-1-20 14:34
用一个定时精度高一点的定时器,如定时1uS,在中断里计数,根据你  要的频率,处理计数值及标识,在主循环 ...

你这么一说我感觉有点不知道怎么定时了,我现在用的51单片机自带24.5M的晶振,定时1us算不出来
回复

使用道具 举报

ID:803014 发表于 2021-1-20 16:58 | 显示全部楼层
人人学会单片机 发表于 2021-1-20 13:04
当然是可以的,下面这个是最小公倍数的算法。简简单单的三个IO口输出波形

这个牛逼,弄一个单独的计数器,根据当前数值来判断灯(输出)是否应该改变状态,我觉得可以套用(把这个写进定时器中断应该能达到很好的效果)
回复

使用道具 举报

ID:803014 发表于 2021-1-20 17:00 | 显示全部楼层

还在学51呢,现在手上有块C8051F410,还在钻研
回复

使用道具 举报

ID:803014 发表于 2021-1-20 17:02 | 显示全部楼层
龙千校 发表于 2021-1-20 16:39
看芯片带不带硬件PWM,没有的话只能软件pwm

嗯,我找一找
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表