OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2995|回复: 3

分别用库函数和寄存器在while里面写了个IO口拉高,拉低,实测频率明显不同,有个疑问是为什么用寄存器操作输出占空比不同?

[复制链接]

9

主题

80

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2015-4-29
在线时间
17 小时
发表于 2016-1-28 11:18:16 | 显示全部楼层 |阅读模式
1金钱
分别用库函数和寄存器在while里面写了个IO口拉高,拉低,实测频率明显不同,库函数为1.7MHz左右,占空比为50%,寄存器为5.1MHz,占空比目测为70~80%。
有个疑问是为什么用寄存器操作输出占空比不同?


QQ截图20160128111841.png

最佳答案

查看完整内容[请看2#楼]

频率不同原因:库函数下跑语句比较多,寄存器是直接写那个地址的,没什么废话的,速度快。 占空比不一样原因:从低到高中间没有别的语句,但是从高到低里面还有判断和跳转语句while(1),所以占空比大于50,而库函数,里面语句本来就很多,也就看不出来多了那判断和跳转了。(这个我也不是很确定,欢迎加群一起研究群号305127575[/backcolor])
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

29

主题

246

帖子

0

精华

高级会员

Rank: 4

积分
968
金钱
968
注册时间
2014-10-9
在线时间
95 小时
发表于 2016-1-28 11:18:17 | 显示全部楼层
本帖最后由 yuanxinfei 于 2016-1-28 12:20 编辑

频率不同原因:库函数下跑语句比较多,寄存器是直接写那个地址的,没什么废话的,速度快。
占空比不一样原因:从低到高中间没有别的语句,但是从高到低里面还有判断和跳转语句while(1),所以占空比大于50,而库函数,里面语句本来就很多,也就看不出来多了那判断和跳转了。(这个我也不是很确定,欢迎加群一起研究群号305127575
淘宝小店,没事可以点一下增加点流量http://shop69767205.taobao.com/
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11555
金钱
11555
注册时间
2014-4-1
在线时间
1317 小时
发表于 2016-1-28 11:40:37 | 显示全部楼层

只能说明库函数里废话多、效率低,比如检查参数合理性之类。


回复

使用道具 举报

11

主题

1044

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3722
金钱
3722
注册时间
2011-5-23
在线时间
2013 小时
发表于 2016-1-28 17:05:21 | 显示全部楼层
楼上真相了
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 07:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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