【无标题】ESP8266微秒级延时函数测试----os_delay_us()

ESP8266微秒级延时函数测试----os_delay_us()

 最近需要做个利用8266作控制器的手机维修加热台,利用18B20来精确测量温度的模块。
 arduino库中有现成DC18B20的操作库,但是做个库有个问题,无法正确识别到8266是否真实在线(也许时我没有在现成库中找到做个函数),准确读取到18b20的真实温度,导致读出来的温度数据不真实(比如,你8266上不接18B20时,读出的温度时-127度,)
 如果出现不能正确判断18B20是否在线,或者正常工作,就会在某些极端情况下,导致加热台温度不可控,出现意外。、
 为来了解决做个问题,我就准备利用前期STC单片机做的18b20源文件进行自行移植,增加判断18B20是否在线等功能。
 但是遇到的第一个问题就是18B20读取时的精确延时问题。需要微秒级延时,在网上搜索了下,arduino自带了个延时函数:os_delay_us()
 下面就是利用下面的程序,加示波器简单测试了下该函数的延时效果,
 源程序如下:
/* ESP8266微秒级延时测试程序*/

void setup() {
pinMode(12, OUTPUT); 
digitalWrite(12,LOW);
}

void loop() {

   digitalWrite(12,HIGH);  
    os_delay_us(30); //延时30微秒
   digitalWrite(12,LOW);   
   os_delay_us(30);
   digitalWrite(12,HIGH); 
   os_delay_us(30); 
      digitalWrite(12,LOW);   
   os_delay_us(30);
   digitalWrite(12,HIGH); 
   os_delay_us(30); 
      digitalWrite(12,LOW);   
   os_delay_us(30);
   digitalWrite(12,HIGH); 
   os_delay_us(30); 
}

利用多个延时函数,对12脚进行高低电平的转换,勇示波器测试得到下面的效果,还是很满意的
在这里插入图片描述
高电平时间也是32微秒,完美
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值