打印
[其他MCU]

gpio翻转速度测试

[复制链接]
1395|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
追逐浪花|  楼主 | 2015-12-18 20:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在LPC810的UM中有这么一句,GPIO port registers are located on the ARM Cortex M0+ I/O port for fast access。言下之意就是gpio翻转速度很快咯。但是LPC810控制输出状态的寄存器很多,按官方说法,控制速度不一样哦。

同时对于LPC来讲,貌似有传统直接控制寄存器的传统。因此今天的测试就是比较库函数和各个寄存器的控制gpio的速度。分别是:
Chip_GPIO_SetPinToggle函数
LPC_GPIO_PORT->NOT寄存器
LPC_GPIO_PORT->SET寄存器
LPC_GPIO_PORT->CLR寄存器
其实库函数还是个inline函数,里面就是一句寄存器操作,照道理inline函数就相当于直接运行里面的寄存器操作语句啊,可是测试结果并不支持这个说法哦,不知道为啥,有没有大侠来解释一下。

系统时钟:10M,为了防止while的影响,一个循环翻转6次,具体测试数据如下:都是翻转一次的时间。直接使用函数:7us左右,直接操作寄存器:900ns,无论是NOT、SET还是CLR,3种操作方式都差不多。

结论:直接使用寄存器操作可以实现大概系统频率1/10的GPIO翻转速度,比我想象的要慢点。因为STC12系列的跑在12M也比这个要快啊。还是我哪里没有设好呢?

相关帖子

沙发
cowboy2014| | 2015-12-19 20:15 | 只看该作者
不太清楚概念,什么时候GPIO状态反转啊?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

256

帖子

1

粉丝