OpenEdv-开源电子网

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

三种操作IO口方式的不同时间

[复制链接]

4

主题

11

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2014-11-27
在线时间
2 小时
发表于 2014-11-28 17:04:46 | 显示全部楼层 |阅读模式
探索者407,运行跑马灯实验,用三种不同方式去操作IO口,看执行时间(在MDK中将Debug-》Setting-》Trace-》Core设为168Mhz):
1,位带操作方式
LED0=0;  //LED0亮(此句设置一个断点)
LED1=1; //LED1灭
delay_ms(300);(此处再设置一个断点)
运行时间:70ns

2,直接操作寄存器
GPIOF->BSRRH=GPIO_Pin_9;//LED0亮(此句设置一个断点)
GPIOF->BSRRL=GPIO_Pin_10;//LED1灭
delay_ms(500);(此处再设置一个断点)
运行时间:40ns

3,直接操作库函数
GPIO_ResetBits(GPIOF,GPIO_Pin_9);  //(此句设置一个断点)
GPIO_SetBits(GPIOF,GPIO_Pin_10);   //
delay_ms(300);(此处再设置一个断点)
运行时间:100ns





正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-11-28 20:40:47 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

58

主题

6291

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11406
金钱
11406
注册时间
2014-4-1
在线时间
1282 小时
发表于 2014-11-28 22:08:40 | 显示全部楼层
是用示波器测吗?
回复 支持 反对

使用道具 举报

4

主题

11

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2014-11-27
在线时间
2 小时
 楼主| 发表于 2014-11-29 10:57:06 | 显示全部楼层
回复【3楼】xuande:
---------------------------------
不是,调试时,看MDK左侧Internal中的Sec参数计算,或者右下侧最底端(Status Bar)t1参数计算。
好像说将MDK里面的参数(在MDK中将Debug-》Setting-》Trace-》Core设为168Mhz)设置好,就差不多了,默认是10Mhz。
只是评估一下直接操纵寄存器和用库函数操作,时间上有多大区别。
回复 支持 反对

使用道具 举报

4

主题

11

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2014-11-27
在线时间
2 小时
 楼主| 发表于 2014-11-29 11:26:57 | 显示全部楼层
168Mhz,如果一个时钟一条指令,一条指令约6ns,看编译后的汇编指令用了几条指令,计算一下,基本一样。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-23 09:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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