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库的数量优势 ...
最新文章
- Jittor 的Op, Var算子
- 强化学习、联邦学习、图神经网络,飞桨全新工具组件详解
- 忘关烤箱了?我用 Python 和 OpenCV 来帮忙
- block 与 dispatch quene
- python爬虫什么网站都能爬吗_python如何爬取动态网站
- python读取二进制文件_如何用python读取二进制文件?
- Java语言所有异常类均继承自_Java将运行错误分为两类:(__)和(__), 其对应的类均派生自(__)类;...
- mysql时长用什么类型_MySQL 日期时间类型怎么选?千万不要乱用!
- opensource项目_来自Opensource.com的开放硬件资源
- ActionForm
- OpenSuSE 网络配置
- lepus监控oracle数据库_实用脚本一键监控oracle数据库索引使用状况
- java对象创建、对象内存布局、对象的访问定位、句柄池、直接指针
- PTA 判断上三角矩阵
- 操作系统-3.假设某多道程序设计系统中有供用户使用的内存100KB,打印机1台。系统采用可变分区方式管理内存:对打印机采用静态分配,并假设输入输出操作的时间忽略不计;采用最短剩余时间优先的进程调度算法
- Social Influence as Intrinsic Motivation for Multi-Agent Deep Reinforcement Learning-笔记
- 在线二进制转文本字符工具
- 字母易位词(anagram)
- 《连线》杂志主编Kevin Kelly 给年轻人的99条人生建议
- 联想服务器怎么接显示器,联想笔记本连接显示器 联想笔记本外接显示器怎么设置...