python延时us函数_树莓派高级GPIO库,wiringpi2 for python使用笔记(二)高精度计时、延时函数...
学过单片机的同学应该清楚,我们在编写传感器驱动时,需要用到高精度的定时器、延时等功能,wiringpi提供了一组函数来实现这些功能,这些函数分别是:
micros() #返回当前的微秒数,这个数在调用wiringPiSetup()后被清零并重新计时
millis() #返回当前的毫秒数,同上,这个数在调用wiringPiSetup()后被清零并重新计时
delayMicroseconds() #高精度微秒延时
delay() #毫秒延时。
python相对于C,一个很大的问题就是执行速度慢,所以指令执行速度不可忽视,我们可以用micos函数来检测指令执行时间,用来避免实际使用中遇到的坑,请看以下代码:
importwiringpi2 as gpiofor i in range(5):
t1=gpio.micros()
t2=gpio.micros()print(t2-t1)
连续调用两次micros,然后打印出差值,运行结果如下:
[root@RasPi ~/testcode]# python testus.py12
4
4
5
5
我们看到第一次的结果明显比以后的结果要大,多了接近10微秒,一般的程序来说,这无关紧要,要是要求更高,可以把代码改成这个样子:
importwiringpi2 as gpiofor i in range(5):
t1=gpio.micros()
t1=gpio.micros()
t2=gpio.micros()print(t2-t1)
运行结果如下:
[root@RasPi ~/testcode]#python testus.py
3
3
3
3
2
基本一致了再看以下代码:
importwiringpi2 as gpiofor i in range(5):
t1=gpio.micros()
t1=gpio.micros()
gpio.delayMicroseconds(10)
t2=gpio.micros()print(t2-t1)
延时10us,结果如下:
[root@RasPi ~/testcode]#python testus.py
21
21
18
18
18
减去两次调用micros()之间的5us左右的延时,实际延时10us会有5us左右的延时。
importwiringpi2 as gpiofor i in range(5):
t1=gpio.micros()
t1=gpio.micros()for i in range(100):passt2=gpio.micros()print(t2-t1)
结果:
[root@RasPi ~/testcode]#python testus.py
59
69
66
61
62
也就是,普通几条指令,每条延时在1us以下,可以基本忽略,调用函数,则有5-10us左右的延时,在编写程序时,应充分考虑这一点。若在时序里有复杂的代码段,则最好能实际测试一下,看看执行时间对我们的时序有什么影响。
python延时us函数_树莓派高级GPIO库,wiringpi2 for python使用笔记(二)高精度计时、延时函数...相关推荐
- 树莓派python gpio 模仿iic_树莓派高级GPIO库,wiringpi2 for python使用笔记(五)i2c读取测试...
wiringpi2显然也把i2c驱动带给了Python,手头上正巧有一个DS3231的模块,上边带了一个DS3231 RTC(实时时钟),与一片24C32,两个芯片均为iic总线设备,与树莓派接线如下 ...
- python控制步进电机驱动器_树莓派通过GPIO控制步进电机(python)
步进电机的驱动程序一样是让我费了好大力气才使他正常工作,在代码上走了不少弯路 树莓派不建议直接使用舵机,虽然舵机方便,而且仅需要一根信号线,不过需要舒服pwm信号,而新版的b+板子已经没有了物理的pw ...
- ES6学习笔记二arrow functions 箭头函数、template string、destructuring
接着上一篇的说. arrow functions 箭头函数 => 更便捷的函数声明 document.getElementById("click_1").onclick = ...
- 树莓派python交互界面实例_树莓派综合项目2:智能小车(二)tkinter图形界面控制...
一.介绍 树莓派综合项目2:智能小车(一)四轮驱动中,实现了代码输入对四个电机的简单控制,本章将使用Python 的图形开发界面的库--Tkinter 模块(Tk 接口),编写本地运行的图形界面,控制 ...
- python key=lambda函数_使用’key’和lambda表达式的python max函数
我来自OOP背景,尝试学习Python.我使用的是max函数,该函数使用lambda表达式返回Player类型的实例,其中players列表中的totalScore最大. def winner(): ...
- python query.filter函数_filter筛选函数_【曾贤志】用Python处理Excel数据 - 第1季 基础篇_Excel视频-51CTO学院...
---------------------------------------------------------------- 学完本课程可继续巩固篇:https://edu.51cto.com/c ...
- python设置笔大小的函数_小朋友们,你试过用Python语言绘制小猪佩奇吗?来完成你的第一个创作吧!...
在上一章中,我们用海龟绘图绘制了机器猫的卡通图像.在本章中,我们介绍如何用海龟绘图来绘制小朋友们喜欢的另一个卡通形象--小猪佩奇. 1 程序分析 我们先来看一下小猪佩奇的样子,如图1所示. 图1 观察 ...
- python语音播报天气预报_树莓派之天气预报语音播报
目录 树莓派之天气预报语音播报 方案选定 项目基调 需求分析 解决方案 具体实施 step1天气信息 安装ilang软件 json解析和文字组合 定时任务 树莓派之天气预报语音播报 前几天跟同事在聊家 ...
- python大神作品_掌握了这24个顶级Python库,你就是大神!
全文共11815字,预计学习时长24分钟 Python有以下三个特点: · 易用性和灵活性 · 全行业高接受度:Python无疑是业界最流行的数据科学语言 · 用于数据科学的Python库的数量优势 ...
最新文章
- Tomcat 服务器的端口号的修改
- C#条件运算符if-else的简化格式
- PHPMailer目录和命名空间没有错,但是始终class not found,的原因和解决方法
- 今天看了风云II 后悔了
- 创邻科技张晨:智能物联为图数据库的迅速发展提供了良好应用场景
- Scikit-learn:scikit-learn快速教程及实例
- Atitit 常见集合的操作 dsl表达式 选择器 多属性条件检索 ,排序等 目录 1. Ognl 集合操作	1 2. /bookmarksHtmlEverythingIndexPrj/src/Li
- 计算机学生选课系统毕业论文,学生选课管理系统论文
- matlab求多元极大似然估计,matlab求极大似然估计
- 常见电商项目的数据库表设计(MySQL版)
- 数据结构学习之矩阵乘法与矩阵的转置
- 分享图片至Facebook与Twitter
- 数据库分片以及schema概念
- 测试人员如何区分前端和后台BUG方法流程
- deepin系统中.txt文件图标显示内容问题_深度操作系统 deepin V20(UOS)的10大优化操作
- CSR8670 — 说说蓝牙音频常用的编解码格式
- 1112day10:考前复习50题:断言
- 清亡之路(4):最受误解的东南互保
- AM335x启动流程(BootRom-MLO-Uboot)
- 【THUSC2017】【LOJ2977】巧克力 斯坦纳树