《Arduino程序设计基础》纰漏更正-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: 奈何col

《Arduino程序设计基础》纰漏更正

[复制链接]
发表于 2014-5-4 20:03 | 显示全部楼层
大神,第6章SD卡部分,看你的代码上头文件只有include<SD.h>,但我编译的时候,均需要再导入<SPI.h>才可以,不然都提示错误。6.2.4, 6.2.5, 6.2.6。。。等等,,是版本的问题吗?

另外发现的两个小问题:
第6章 P170,代码void setup里面,if(!SD.begin(chipSelect)){}中的"return;"用在这里不太合适,前面几节SD写文件、读文件的代码Loop段中是空的,所以当SD初始化失败后return可以退出Setup然后进入loop空转;而这段代码的Loop中是向SD卡中写内容,所以此处SD初始化失败return后会进入Loop段继续尝试写入SD卡。可以把"return;"改为"while(1);"应该好些。

第8章 P202,硬时钟1307库提供的网址有问题,行末"DS1307"后的"-"应该去掉。这可能是编辑软件折行自动加上去的,但是今儿我找这个网页可费了老鼻子劲了,从pjrc首页一点点点进去找到库,后面才知道是要去掉那个短横。

点评

你的版本是啥,我用的版本是1.0.5,不用include spi.h; 这个程序改自IDE自带的file例程,确实没注意这个问题,大意了; 那个横杆估计是编辑排版时加的连字符或者软件自动加的。http://www.clz.me/arduino-book/examp  详情 回复 发表于 2014-5-4 22:55

评分

参与人数 1贡献 +2 收起 理由
奈何col + 2 感谢指正

查看全部评分

 楼主| 发表于 2014-5-4 22:55 | 显示全部楼层
xxfx1118 发表于 2014-5-4 20:03
大神,第6章SD卡部分,看你的代码上头文件只有include,但我编译的时候,均需要再导入才可以,不然都提示错 ...

你的版本是啥,我用的版本是1.0.5,不用include spi.h;
这个程序改自IDE自带的file例程,确实没注意这个问题,大意了;
那个横杆估计是编辑排版时加的连字符或者软件自动加的。http://www.clz.me/arduino-book/examples-advanced/   这里有例程和对应的库的下载地址;


太感动了,非常感谢你的指正
发表于 2014-5-4 23:21 | 显示全部楼层
奈何col 发表于 2014-5-4 22:55
你的版本是啥,我用的版本是1.0.5,不用include spi.h;
这个程序改自IDE自带的file例程,确实没注意这个 ...

我是用的1.5.4的。
不用客气,微薄之力,刚好发现问题,能指出来也帮助后面学习的朋友。
大神你这个头像太可爱了,,不行了都。。。
发表于 2014-7-3 21:15 | 显示全部楼层
第49页,while(digitalRead(buttonPin)== HIGH){} 应该为while(digitalRead(buttonPin)== LOW){}

点评

这里没有错  详情 回复 发表于 2014-7-4 00:14
 楼主| 发表于 2014-7-4 00:14 | 显示全部楼层
白纸 发表于 2014-7-3 21:15
第49页,while(digitalRead(buttonPin)== HIGH){} 应该为while(digitalRead(buttonPin)== LOW){} ...

这里没有错
发表于 2014-7-11 17:32 | 显示全部楼层
奈何大大,书本58页的例程李计算距离的公式distance=pulseIn(EchoPin,HIGH)/58.00,这里为什么是除以58?应该是S=vt*0.5=34000cm/s*0.5*读出的数(微秒)/1000000=0.017*读数。分子分母是不是搞反了?

点评

额,这个没有错误,自己推算下吧,初中计算题  详情 回复 发表于 2014-7-16 12:15
 楼主| 发表于 2014-7-16 12:15 | 显示全部楼层
yykldbb 发表于 2014-7-11 17:32
奈何大大,书本58页的例程李计算距离的公式distance=pulseIn(EchoPin,HIGH)/58.00,这里为什么是除以58?应 ...

额,这个没有错误,自己推算下吧,初中计算题
发表于 2014-7-23 10:22 | 显示全部楼层
p82检测脉冲宽度,并计算距离distance=pulsein()/58,是怎么计算出来的,pulsein计算出来的是us,声音340m/s,距离=速度x时间,速度340m/S,时间pulseinx10(-6)/2;那么距离distance=340m/S x pulsein()x10(-6)/2;折算为cm则x100,那么最后结果为0.017xpulsein(),不知道这结果对不?
发表于 2014-7-23 11:04 | 显示全部楼层
江水一瓢 发表于 2014-7-23 10:22
p82检测脉冲宽度,并计算距离distance=pulsein()/58,是怎么计算出来的,pulsein计算出来的是us,声音340 ...

对的,1/58就是0.017
发表于 2014-7-23 11:09 | 显示全部楼层
coloz 发表于 2014-7-23 11:04
对的,1/58就是0.017

这个地方用乘法感觉比用除法好呵呵
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 09:49 , Processed in 0.150815 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表