完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我用的是普中科技的实验程序 先声明一下..
接下来是读字节循环里的一部分我给提出来了 其中DSPORT是传感器管脚 DSPORT = 0; DSPORT = 1; i++; i++;//延时6us等待数据稳定 bi = DSPORT; //读取数据,从最低位开始读取 先拉低 再拉高 读数据. 可是这和IIC不一样。前几天看得IIC有SDA和SCL两根线 但是这个只有一个根线..它是咋识别的 是说如果赋值的话就是数据内容 被赋值 就改变的是时钟?? 另一个问题是 比如我现在有一个 uint i; 我执行while(i--); 我进行调试发现它每次需要花9us才执行一次i-- 就算是算上判断 我感觉还是很多啊 因为一个指令周期不应该是1-4us么? 而且这种不应该是比较低级的么... 还是有什么别的因素? 晶振就是普通的12M.. 求教..谢谢大家。 |
|
相关推荐
5个回答
|
|
回帖奖励 +1 分积分
DS18B20是单总线,是一种与IIC不同的总线方式,是两个不同规范的总线协议。
指令周期会根据数据类型的不同而消耗不同的执行时间,uint是16位数据,如果是8位单片机的话,需要进行两次减法运算,才算完成一次16位数的减法,而用uchar的话,8位数据,只需要做一次减法运算就可以了。 你可以试试再定义一个uchar,对比一下两种数据类型的运行时间。
最佳答案
评分
|
||
|
||
|
|
回帖奖励 +1 分积分
如果你要精确的计算时间的话你要去看汇编代码,因为我们的代码都会转换为汇编,然而汇编是对寄存器的操作,我们不知道它是如何通过汇编来实现while(i--)这个操作的。
评分
|
||
|
||
人中狼 发表于 2017-7-24 19:23 我当时自己试的时候的确是uchar快很多.原来是这样 thanks |
|
|
|
DS18B20是单总线通讯器件。单总线不需要时钟线
它的同步方式是这样的,主机拉低总线并释放,从机接手总线,开始发送数据,数据以低电平+高电平组成一个位,低电平的持续时间判断是位1还是位0。 指令执行速度的问题,得看那句C语言被编译器编译出几句汇编语句。 评分
|
||
|
||
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-使用AHT20进行环境监测之AHT20传感器介绍
203 浏览 0 评论
761 浏览 0 评论
806 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
743 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
1195 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11806 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 17:30 , Processed in 0.659618 second(s), Total 90, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号