搜索
bottom↓
回复: 126

[勘误表][2008-06-21Update]《深入浅出AVR单片机——从ATMega48/88/168开始》丑媳妇

[复制链接]

出0入296汤圆

发表于 2008-6-6 18:33:24 | 显示全部楼层 |阅读模式

“出书了,我就整两句——咳咳…… 类第森 按得 间套们~”




>>最新消息

    [2008-06-06] 中国电力出版社开始网售《深入浅出AVR单片机——从ATMega48/88/168开始》   
                 中国电力出版社以惊人的速度开始网售从去年就开始倍受炒作的《深入浅出AVR单片机》。
                 定价49.8RMB。网购可以打9折。据估计,未来几天开始的当当网销售,可以拿到最低7.5
                 折的优惠价。首批4K本图书中的一部分已经开始发往全国各地新华书店,进行试销售。根
                 据销售情况估计未来可能追印的数量。中国电力出版社网售的地址详见“购书渠道”栏目。

    [2008-06-15] 当当网开始销售本书
                 中国电力出版社除去通常的新华书店销售和出版社网站销售以外,原本预定的主力网络销
                 售方式就是当当网销售。目前折扣79折。

    [2008-06-18] 卓越网出现暂时缺货

    [2008-06-20] 卓越网恢复供货 74折  当当网缺货

    [2008-06-21] 当当网恢复供货
   


>>购书渠道

<font color=red>关于购买《深入浅出AVR单片机——使用ATmega48/88/168》一书的紧急声明

《深入浅出AVR单片机——使用ATmega48/88/168》一书已由中国电力出版公司(原中国电力出版社)印刷完毕,面向全国公开发行。目前使用Google搜索已经可以找到数个网络销售渠道。

作者非常感谢广大读者给予本书的厚爱,并提醒诸位读者,中国电力出版公司关于本书的销售页面为http://www.ceppbooks.com/newbookinfo.asp?id=97875083690049800000

到目前为止,作者本人没有授权除中国电力出版公司之外的任何个人和网站代理本书的销售权,广大读者在除开电力出版社(包括出版社所认可的当当网店铺,网址链接稍后公布)和各地新华书店之外的渠道购买本书时,请注意核实卖家的销售信誉,以免上当受骗。

    以下渠道,全部来自搜索引擎,仅供参考




    [2008-06-06] 中国电力出版社网站售书
                 网址 http://www.ceppbooks.com/productinfo.asp?id=97875083690049800000
                 定价: 49.8RMB

    [2008-06-11] 中国图书网
                 网址http://www.bookschina.com/2832791.htm
                 定价:43.8RMB

    [2008-6-20]  卓越网
                 网址http://www.amazon.cn/mn/detailApp?qid=1213321662&ref=SR&sr=1-1&uid=168-3500458-3097810&prodid=bkbk832583
                 定价:37.0RMB  最低价7.4折出现!

    [2008-6-13]  China-pub
                 网址http://www.china-pub.com/40854
                 定价:37.35RMB  货源充足 傻孩子推荐

    [2008-6-21]  当当网   
                 网址http://product.dangdang.com/product.aspx?product_id=20244806
                 定价:37.35RMB  货源充足 傻孩子推荐

</font>


>>相关下载

    [2008-01-18] 更新DEMO版下载
                 作者保留版权,切勿用作商业目的,发现错别字或者错误切勿客气
                 再次声明,DEMO中的内容都不一定是最终内容!
                 点击下载DEMO(文件大小:5.67M)</font>

    [2008-06-06] 更新书中所有设计的PDF下载
                 点击下载

    [2008-06-17] 光盘“章节程序源代码”部分内容重复
                  上传更新文件
                  点击此处下载 ourdev_315442.rar(文件大小:27K) (原文件名:章节程序源代码.rar)


>>特邀书评


再次感谢彩虹的高度评价哈,学生诚惶诚恐,感激涕零 ^_^

在网上认识傻孩子和他的书,可以最追溯到上一年,也是见到傻孩子书稿比较早的人之一,由于时间关系,一直没得有大块的时间来通读该书
,只是零零碎碎的时间来拜读,惭愧惭愧……受傻孩子之约,要我谈谈对此书的看法,又令我惶恐惶恐……呵呵。

浏览书稿给我的第一印象:热情、朝气、有个性。
以前没有跟傻孩子打过交到,上年联系上之后一直是QQ中“邂逅”,没见过真人,只见过ourdev的头像照片,甚至电话都没打过,所以也没听过声
音,完全是陌生人。但是通过QQ聊天的字里行间,可以感觉到傻孩子是一个热情、有朝气、很执着的人,对事情有很强的掌控能力,这点在他
的书中也体现出来了:用词、语气和文章的叙事风格,都是目前国内技术性书籍很少见到的,让人看了很亲切,没有教材和教科书那种冷冰冰
的生硬灌输知识的感觉,读起来很流畅舒服,颇有外国教材的风格,总之一句话,我对该书第一印象很好。

仔细研读后,谈谈我的个人感受:

1、书籍的编写风格和个性十分鲜明,从最简单的基础知识入手,比如如何阅读DATASHEET等基础知识也一并详细介绍,把单片机的C语言知识和
简单的AVR硬件知识逐步推开给读者,因此哪怕是中学生,都不会对枯燥的C语言和AVR知识反感,特别是对指针、队列等数据结构相关的比较抽
象的知识,用了很常见的生活知识来进行类比,通俗易懂,我想大家多看看这本书,ourdev里就不会经常出现诸如“1<<PA1是什么意思”之类
的帖子了。该书的页面右侧作者注,也是一大特色,多是一些小经验介绍或注意事项,很有画龙点睛之作用,是国内技术性书籍很少见的一个改
革,这本书是一本很好的AVR的C语言扫盲书籍。

2、该书是软硬结合,较偏向软的技术性书籍,除了介绍基本的C语言知识以外,还在第三篇安排了较为高层次的内容,如指针、嵌入式操作系
统的相关知识等,给学习了前面两篇知识还不过瘾的读者再进一步学习提高的机会,也给读者学习日渐流行的嵌入式操作系统提供了很好的知
识准备,利于读者形成今后进一步学习的必备概念。整本书的编排结构很好,利于读者由浅入深的学习,不客气的说,相比以前的AVR书,先来
一大堆枯燥的DATASHEET搬家的风格,算是很大的进步了,呵呵……

3、下面也谈谈次书一些不算问题的问题吧,仅仅代表个人看法,有不同看法的大可一笑了之:)首先是在这本最新的AVR书籍中,还是没有看
到太多介绍如何做工程,如何从学生哥孵化成一线工程师的相关内容,目前大学毕业生最缺的不就是这种学校和社会衔接的知识吗?基础知识
甚至于一些高精尖的理论知识,好好学习的学生往往不缺。而一朝毕业,等于把青蛙从井底拽出井口外,面对这种角色剧变和比校园广阔得多
的天地,很多人会难以适从较长一段时间,所以我觉得今后的教材还应该添加这方面知识,为读者就业做好准备。以前我从事多媒体开发行业
的时候,就买过一本这样的书《多媒体经营宝典》,从如何接触客户、到如何响应客户需求,到选定方案,计算利润,如何交付产品等相关知
识一应俱全,看完了这本书就对如何经营项目有个全面的认识,再依葫芦画瓢一番,很快就顺利进入这个行业独当一面。

4、书本介绍的AVR软件编译环境没有使用免费的WINAVR,而是使用了商业软件ICCAVR,本人觉得有点白玉微瑕。ICCAVR是一款商用软件,一般
读者只能到处找D版的,跟当前不断得到共识的尊重知识版权理念违背而行,如果能以免费的WINAVR+avrstudio来开展学习,那是最好不过的
了,经过封装的WINAVR,其实已经大大降低了入门的门槛,mfile程序也解决初学者最头痛的编写makefile的问题,可能是我偏爱WINAVR吧,总
喜欢给人介绍这个编译器,大家见谅见谅,呵呵……

最后,再次感谢傻孩子及本书的几位作者,本人深有体会写一本负责任的书实在是不容易,到时候傻孩子签名售书给我留一本啊,哈哈哈。



>>参考信息


[ 封 面 ]



[ 目 录 ]










出0入296汤圆

 楼主| 发表于 2008-6-6 18:33:27 | 显示全部楼层

>>第一篇勘误表

1、43页,第3段,用跳线将XS10的1,3脚短路,       应为:用跳线将XS4的1,3脚短路;

出0入296汤圆

 楼主| 发表于 2008-6-6 18:33:32 | 显示全部楼层

>>第二篇勘误表


1、61页,倒数第4行,注释语句port_value,       应为:PortValue;
2、72页,图3-27最后一个框,延时0.2S(500ms),  应为:延时0.5S(500ms).
3、207页,图7-8。                             该图其实并不是207页文字所提到的图片,这里漏了一个图片。大家看到
                                              的图片是208页文字描述中提及的环路总线构建示意图。这里图2.5.8的
                                              编号是重新排版前原稿的编号。

(原文件名:N_}T93M3[{0Z)G`QC[([I(K.jpg)

4、79页,图3-38,矩阵键盘实验电路图。文字“键盘的列”上方,PC1所连接的列按键图不完全,后面被截了一部分。
5、80页,图3-40,键盘扫描模块流程图。由上至下数第1个“返回值Key_C”应为“返回值Key_B”
6、92页,第10行。(语病)“那么能否像普通函数那样,用参数与返回值来传递数据吗?(注意后面这个‘吗’字)……”应为“那么能否像普通函数那样,用参数与返回值来传递数据呢?”
7、95页,表4-3,中断与查询特性比较表。第3行第3列,“在某些时候,对查询方式对事件的……”应为“在某些时候,查询方式对事件的……”
8、99页,第12行“……,只要改引脚上的……”应为“……,只要该引脚上的……”

出0入296汤圆

 楼主| 发表于 2008-6-6 18:33:37 | 显示全部楼层

>>第三篇勘误表


1、394页 图12-5中,最后一个矩形框中的 2 BYTE                 应改为: 4 BYTE
2、348页 中间的代码 n = 7、8、9的部分,x<<n的结果都少左移了一位

出0入296汤圆

 楼主| 发表于 2008-6-6 18:37:43 | 显示全部楼层

>>附录勘误表 / 光盘 / 其它


1、
    [2008-6-17]   光盘“章节程序源代码”部分内容重复
                  上传更新文件
                  点击此处下载 ourdev_315442.rar(文件大小:27K) (原文件名:章节程序源代码.rar)

2、484页,多处EEPROM被写成E2OROM。
3、前言中,感谢内容里面,“韩明名”同学的名字被错误的写为“韩名明”。特此道歉。

4、[2009-3-16]  光盘下载
                   点击此处下载 ourdev_425821.rar(文件大小:2.06M) (原文件名:深入浅出AVR单片机光盘.rar)

出0入0汤圆

发表于 2008-6-6 18:40:40 | 显示全部楼层
沙发.
就占这了.离的近,看得清楚.
这书好.
十分的人性化.
会不会,想不想学,学文的学理的,中国的外国的都得买,都得支持楼主!

现在是保沙发活性说明.
------------------------------------
动作一次,保持此沙发活性.
------------------------------------

出0入0汤圆

发表于 2008-6-6 18:47:46 | 显示全部楼层
沙发2

出210入8汤圆

发表于 2008-6-6 18:49:18 | 显示全部楼层
此贴必火,沙发3。

出0入0汤圆

发表于 2008-6-6 19:01:18 | 显示全部楼层
沙4

出0入0汤圆

发表于 2008-6-6 19:20:08 | 显示全部楼层
我也来占个板凳

出0入0汤圆

发表于 2008-6-10 10:05:24 | 显示全部楼层
占个地板

出0入0汤圆

发表于 2008-6-10 18:30:53 | 显示全部楼层
向Gorgon Meducer 傻孩子的开源精神致敬。
看错了。我还认为傻孩子把最终板的PDF传上来呢。

出0入0汤圆

发表于 2008-6-10 19:57:38 | 显示全部楼层
是呀,我也希望这样,苦苦等了很久了...

出0入0汤圆

发表于 2008-6-10 20:46:38 | 显示全部楼层
地板

出0入296汤圆

 楼主| 发表于 2008-6-10 23:00:33 | 显示全部楼层
地震……

出0入0汤圆

发表于 2008-6-11 11:25:56 | 显示全部楼层
来晚了

出0入0汤圆

发表于 2008-6-11 11:44:22 | 显示全部楼层
后生可畏!

出0入0汤圆

发表于 2008-6-11 17:03:33 | 显示全部楼层
在每个IO口上都接一个LED 这个想法真的挺好。 参照 Gorgon Meducer 傻孩子 的电路做了块板,

效果不错。 晚上发个图来.

呵呵。

出0入0汤圆

发表于 2008-6-11 21:48:50 | 显示全部楼层
终于邮购了那本书,等过两天书到了,就有得干了.

出0入296汤圆

 楼主| 发表于 2008-6-13 09:51:07 | 显示全部楼层
卓越网
                 网址http://www.amazon.cn/mn/detailApp?qid=1213321662&ref=SR&sr=1-1&uid=168-3500458-3097810&prodid=bkbk832583
                 定价:42.4RMB

出210入8汤圆

发表于 2008-6-13 09:53:36 | 显示全部楼层
马上去买。

/*************************************************

呵呵,不知道我是不是第一个?

*************************************************/

出0入296汤圆

 楼主| 发表于 2008-6-13 10:14:50 | 显示全部楼层
to 【20楼】 csg0203
    很遗憾,你没有抢到沙发……

出0入296汤圆

 楼主| 发表于 2008-6-13 14:48:19 | 显示全部楼层
China-pub
                 网址http://www.china-pub.com/40854
                 定价:37.35RMB  最低价7.5折出现!

出0入0汤圆

发表于 2008-6-13 16:37:28 | 显示全部楼层
己下单了,不为别的,就是喜欢这种风格,中国很多书缺的就是这种易读性.
同时补一下俺改你DEMO版的过失:)

支持一下.

出0入296汤圆

 楼主| 发表于 2008-6-15 16:06:22 | 显示全部楼层
[2008-6-14]  当当网
                 网址http://product.dangdang.com/product.aspx?product_id=20244806
                 定价:39.3RMB  7.9折

出0入0汤圆

发表于 2008-6-15 17:23:38 | 显示全部楼层
25层的沙发.

出210入8汤圆

发表于 2008-6-18 17:18:40 | 显示全部楼层
这几天忙,才看了几十页,发现两处小错误,请傻孩子改一下。

1.61页,倒数第4行,注释语句port_value,       应为:PortValue;
2.72页,图3-27最后一个框,延时0.2S(500ms),  应为:延时0.2S(200ms).

出0入296汤圆

 楼主| 发表于 2008-6-18 17:45:14 | 显示全部楼层
to 【26楼】 csg0203
   谢谢您哈。第一条没有问题,第二条应该是500ms
    2.72页,图3-27最后一个框,延时0.2S(500ms),  应为:延时0.5S(500ms).

出0入296汤圆

 楼主| 发表于 2008-6-20 17:39:16 | 显示全部楼层
[2008-6-20]  卓越网
                 网址http://www.amazon.cn/mn/detailApp?qid=1213321662&ref=SR&sr=1-1&uid=168-3500458-3097810&prodid=bkbk832583
                 定价:37.0RMB  最低价7.4折出现!

    [2008-6-13]  China-pub
                 网址http://www.china-pub.com/40854
                 定价:37.35RMB  货源充足 傻孩子推荐

    [2008-6-20]  当当网   
                 网址http://product.dangdang.com/product.aspx?product_id=20244806
                 定价:37.35RMB  暂缺货

出0入296汤圆

 楼主| 发表于 2008-6-21 15:02:02 | 显示全部楼层
今天当当网恢复供货了,他们动作真快哈^_^

出0入0汤圆

发表于 2008-6-23 16:21:21 | 显示全部楼层
你好,我是一个AVR的初学者,在你的书中,在P43页,我读到"......再将这种测试方法延伸到max202芯片之后,用跳线将XS10的1,3脚短路,再次用串口调试助手发送一串数据,并观察接受结果"我反复阅读了好几遍,发现XS10不就是和PC的9针口直接连接的那个插头吗,短路它的1,3脚和短路TXD与RXD应该是一样的效果的,我估计此处是否应该是"把XS4的1,3脚短路.....",请多多指教,多谢...

出0入0汤圆

发表于 2008-6-23 16:23:28 | 显示全部楼层
期待你的回复,请多多指教,多谢...

出0入0汤圆

发表于 2008-6-23 20:13:22 | 显示全部楼层
Schneider123比较细心哈,这里确实是一个笔误,应该是短路P41页图2-33中XS4的1(MCURX)脚、3(MCUTX)脚,就是在单片机的串口侧做一个自环线。

再次感谢Schneider123热心指出错误,多多感谢。

By:江海波

出0入0汤圆

发表于 2008-6-23 23:01:42 | 显示全部楼层
晚上花了点时间看了。

P79,图3-38,矩阵键盘实验电路图。文字“键盘的列”上方,PC1所连接的列按键图不完全,后面被截了一部分。
P80,图3-40,键盘扫描模块流程图。由上至下数第1个“返回值Key_C”应为“返回值Key_B”
P92,第10行。(语病)“那么能否像普通函数那样,用参数与返回值来传递数据吗?(注意后面这个‘吗’字)……”或许应改为“那么能否像普通函数那样,用参数与返回值来传递数据呢?”或者“那么能像普通函数那样,用参数与返回值来传递数据吗?”
P95,表4-3,中断与查询特性比较表。第3行第3列,“在某些时候,对查询方式对事件的……”对……对……,是不是要少一个前面的对?
P99,第12行“……,只要改引脚上的……”应为“……,只要该引脚上的……”

拙见。。。。。

出0入296汤圆

 楼主| 发表于 2008-6-23 23:05:41 | 显示全部楼层
to 【33楼】 andyli
    非常感谢!

出0入0汤圆

发表于 2008-6-23 23:08:48 | 显示全部楼层
动作真快。。。。

出0入296汤圆

 楼主| 发表于 2008-6-23 23:15:49 | 显示全部楼层
*^_^* 你看看第三篇有无错误。

出0入0汤圆

发表于 2008-6-23 23:19:29 | 显示全部楼层
明天继续,反正得全然不漏地啃完。。。。
“你看看第三篇有无错误。”莫非第三篇是你校对的???

出0入296汤圆

 楼主| 发表于 2008-6-23 23:21:02 | 显示全部楼层
我写,我校的……第二篇中 SPI 、I2C和串口进阶部分也是我写我校的。

出0入0汤圆

发表于 2008-6-24 07:55:53 | 显示全部楼层
多谢作者的回复,不胜感激,多谢了...

出0入0汤圆

发表于 2008-6-24 23:02:58 | 显示全部楼层
晚上又看了几十页,再把个人认为有出入的地方贴出来。。。。。

P122,第3行,“……回“0”并从新开始计数……”应为“……回“0”并重新开始计数”
P125,第9行,“……众多时钟源中选择其中其一接在……”应为,“……众多时钟源中选择其中之一接在……”
P131,第6行,“……与我们日常生活中所用说的“时钟”是有区别的……”——“用说”这个词好象不妥,用“所用的”或“所说的”或“所用所说的”是否更好?
P132,第一段,估计很多人(不包括我)读不明白。
P132,第13行,“……除了可以在系统时钟源的各个与分频上选择之外,……”大概是,“……除了可以在系统的各个时钟源与分频(器???)上选择之外,……”
P134,图5-19,“软件工程中模板中各文件间的关系”应为,“软件工程模板中各文件间的关系”
P134,注释。“……严格来说……软件模式有时被成为“超级……”应为“……严格来说……软件模式有时被称为“超级……”
P137,第1行,“就不在提供……”应为“就不再提供……”
P151,第19行,“……,从新……”应为“……,重新……”

出0入0汤圆

发表于 2008-6-24 23:11:23 | 显示全部楼层
继续贴,^-^...
好象我变成超级查误员了。。。。。

P161,第6行,“……,况且不与其他端口复用。”应为“……,并且不与其他端口复用。”
P161,第8行,“……和PC0至PC3端口提供电源。”????那其它ADC的端口呢?用什么供电。。。。???
P161,第13行,“……这个引脚上所接入的电压将会被作为(???)的参考电压,……”是不是“……这个引脚上所接入的电压将会被作为A/D的参考电压,……”

今天看到180多页,。。。。。
以上为个人意见,仅供参考,。。。。。。

出0入0汤圆

发表于 2008-6-24 23:18:06 | 显示全部楼层
再贴。
一下打这么多字,手真酸。。。

   关于各篇章中有关“进阶阅读《阅读提示:……”的文字描述存在以下三个版本:

第一个版本:“进阶阅读《阅读提示:进阶阅读着重……众口难调,请您酌量添加。”
第二个版本:“进阶阅读《阅读提示:进阶阅读着重……众口难调,您请酌量添加。”
第三个版本:“进阶阅读《阅读提示:进阶阅读着重……众口难调,请酌量添加。”

暂停。。。。

出0入296汤圆

 楼主| 发表于 2008-6-25 01:17:43 | 显示全部楼层
to 【40楼】 andyli
    很佩服你。连进阶阅读的三个版本都被你找出来了……很少有您这样细心的。太感动了。
    关于你说的问题,大部分都是您猜想的那样。还有以下一些问题需要说明:
a、“重新”和“从新”都是存在的词语。我的合作者应该是语言上习惯于用“从新”而不是“重新”。
虽然我觉得“重新”更合适一些。
b、P132,第一段,的确很生硬!
c、P132,第13行,“……除了可以在系统时钟源的各个与分频上选择之外,……”应该是:“……除了可以在系统时钟源的各个预分频器上选择之外……”
d、P134,图5-19,“软件工程中模板中各文件间的关系”应为:“软件工程中模板各文件间的关系”
e、P161,第8行 是你理解有偏差。或者说书的讲解让你产生了误解。原文是:“……为A/D模块(包括ADC7和ADC6)和PC0至PC3端口体供电源”。原文的意思是:AVCC为整个包括ADC7和ADC6引脚在内的A/D模块供电,同时还为PC0到PC3的引脚供电。
f、P161,第13行,“……这个引脚上所接入的电压将会被作为的参考电压,……”应该把“……作为的参考电压”中的“的”删除即可。

再次感谢andyli的关心和支持。

出0入0汤圆

发表于 2008-6-26 20:39:03 | 显示全部楼层
呵呵,andyli把咱们的细微之处都给找出来了。

确实,两位作者都打的是拼音输入,肯定还有错字存在,还是非常感谢andyli的热心。现在我们只能把这些错误之处收集整理,以方便大家查阅,再次感谢各位热心读者。

出0入0汤圆

发表于 2008-6-27 01:18:52 | 显示全部楼层
看了目录,刚到卓越订了,期待中

出0入0汤圆

发表于 2008-6-27 22:29:10 | 显示全部楼层
铆上了。
P189,第四行。
P204,注释部分。(错别字)
P127,例如,我们……(下面的那段程序好像有点问题???)
字不想打多了。。。
对着看下有误否?

出0入0汤圆

发表于 2008-6-28 19:27:02 | 显示全部楼层
感谢andyli如此仔细地为我们挑错,能有人这样读我们的书,是一种幸福。我们都用的拼音输入法(都不是专业作者,都不会五笔),所以错别字肯定还是有滴,不过幸好还不会影响理解。希望大家继续帮挑错别字,我们在后面的版本中一并改正。

至于技术问题,希望andyli能够把觉得不对的地方提出来,大家一起讨论。

出0入0汤圆

发表于 2008-7-1 14:04:09 | 显示全部楼层
91 页的图4-7印刷不完整,不知是我的个案还是都是

出0入0汤圆

发表于 2008-7-2 20:33:28 | 显示全部楼层
都是,我手里的样书都是。看来出版社最后排版的时候,文本框没有拉到足够大。这张图在Datasheet前面有,请参考那一张来。如果还有其他我们自己画的图没有印完整的,我们会补在后面。

出0入0汤圆

发表于 2008-7-7 20:26:54 | 显示全部楼层
呵呵  早上看到一出笔误    pwm控制灯亮度那  待会回去贴上来

出0入0汤圆

发表于 2008-7-10 21:57:42 | 显示全部楼层
建议:勘误应汇总并随时更新就好了,以方便大家。
《AVR单片机新书(2008.2):AVR单片机原理及测控工程应用——基于ATmega48/ATmega16 (随时更新勘误表) 》就做得很好,为我们节约了时间。
http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=974121&bbs_page_no=1&search_mode=1&search_text=勘误&bbs_id=9999

出0入296汤圆

 楼主| 发表于 2008-7-10 22:34:54 | 显示全部楼层
to 【51楼】 Bobb
    好的,谢谢您的建议,我们一定改进。前一段时间,我去参加Robocon比赛了,
所以没有来得及。

出0入0汤圆

发表于 2008-7-26 05:57:25 | 显示全部楼层
P477 附录A第三段:“...,1MHz的运行环境下以240nA电流运行。”--》应该是240uA。
P478 关于功耗的数据即与前页不一致,并且三种功耗指标都和Datasheet不一致。可能是版本问题。

当然,Atmel的Datasheet本身也不严谨:Megax8和Megax8P的功耗指标都不一样(略有出入),更奇怪的是PicoPower技术的Megax8P的运行电流反而还大一些。

我看的版本是:Megax8(Rev. 2545M–AVR–09/07),Megax8P(Rev. 8025D–AVR–03/08)。

出0入0汤圆

发表于 2008-7-30 09:01:00 | 显示全部楼层
觉得在P145上的这个舵机来回旋转控制的例子中,程序部分是不是应该将wPosition的值赋值给OCR1A(但是程序部分没有)
我是从我第一眼看到的印象来说(本书就是面向新手的,这里似乎要讲清楚吧)

出0入0汤圆

发表于 2008-7-30 09:28:05 | 显示全部楼层
在P149的程序里  本来是要实现不等时的时标的事件(亮、灭),但是在程序中确一直没有改变时标的最大值,这样的话不就会前面图5-32介绍的连闪方式,而是周期性的亮灭了。前后没有相互对应了吧??

出0入296汤圆

 楼主| 发表于 2008-7-30 18:50:35 | 显示全部楼层
to 【54楼】 llsenyue 坏人
    你注意,在HD_Support.h里面有一个宏SET_POSITION(),该宏就是将wPosition的值赋给OCR1A的。本书的确是面向初学者的
关于用宏进行接口封装的概念,我们在第三篇里面有详细介绍。这里确实需要补充一个旁批,谢谢你。

出0入296汤圆

 楼主| 发表于 2008-7-30 19:01:40 | 显示全部楼层
在P149的程序里  本来是要实现不等时的时标的事件(亮、灭),但是在程序中确一直没有改变时标的最大值,这样的话不就会前面图5-32介绍的连闪方式,而是周期性的亮灭了。前后没有相互对应了吧??


to 【55楼】 llsenyue 坏人
    不明白你说的意思?您可以仔细看一下,这个实例是分步骤来的,先介绍灯闪烁是如何实现的,在150页才介绍单灯连闪,这是一个循序渐进的过程(您可以仔细观察一下,我们的实例都是分步骤地,您所说的内容是《第三步 实践时标概念》的内容,您可以注意一下第四步的标题《实现单灯连闪》。在第一步准备知识中,我们实际上给出了“需求分析”,图5-32就是这样一种描述用户需求的图例,有了需求以后,到最终完成功能,是有很多必要步骤地。您可以参考一下软件工程的一些相关概念。)。您可能稍微性急了一些。您放心,我们的实例都是经过很多人认真测试的,既不是抄写别人,也不是简单而不负责任的Copy自己以前的代码。所以,一般不会出现所谓“前后没有相互对应”的情况。遇到类似情况,您可以稍微向后翻阅一点,也许就知道答案了。
    您这样急急忙忙的发帖子,既没有认真看光盘中的代码,也没有认真地阅读前后的内容。稍微有点浮躁。您可能不爱听,不过我还是想很诚心诚意地给您提醒一下——学习嵌入式,需要的不是别人手把手教,而是学会根据已有的信息,查找到更多的信息,启发式的自学。看资料,要有点辐射到面上,比如遇到一个问题有疑问,就要仔细察看资料上别的相关的地方是否有提示,学会查找别人提供的电子资料——如光盘和文档。您以后在阅读器件手册(PDF)的时候,还会遇到类似的问题——以为是别人的错误,其实在别的地方往往都有详细的提示。
    希望您不要误解我的意思。再次感谢您给的反馈。

出0入0汤圆

发表于 2008-7-30 19:20:51 | 显示全部楼层
谢谢~呵呵 学习态度一定改进

出0入0汤圆

发表于 2008-8-8 11:48:42 | 显示全部楼层
书第235页"图8-3异步串行口的时序"有一段话”通过串口传送数据,低位先传输。图中数据为0x15(0b00010101)“因为说是低位先传输所以我觉得图中的数据应该是0xA8(0b10101000),我是初学AVR不知道是否指正了没呢!

出0入0汤圆

发表于 2008-8-10 09:58:07 | 显示全部楼层
谢谢ql103的热心,低位传送是说串口移位寄存器将移入的数据按照“低位在前”的方式逐位送出。而0x15和0b00010101的书写方式属于“给人看”的表达式形式,不会因为“高位在前”还是“低位在前”就改变了书写的顺序。否则没有人能分辨出0xF0和0x0F是不是同一个东西。

再次感谢我们的热心读者。

出0入0汤圆

发表于 2008-8-24 09:39:25 | 显示全部楼层
电子稿?呵呵,这个可不大敢呀,签了合同,漏出来要陪到倾家荡产的:)

出0入0汤圆

发表于 2008-9-9 20:28:27 | 显示全部楼层
今天书总算是到了,慢慢啃吧!

出0入0汤圆

发表于 2008-12-13 08:03:54 | 显示全部楼层
mark

出0入0汤圆

发表于 2008-12-16 13:08:14 | 显示全部楼层
94页&nbsp;注释中&nbsp;&nbsp;&nbsp;用软件清除“I"标志,我觉得应该是”置位“I”标志。

出0入296汤圆

 楼主| 发表于 2008-12-16 22:33:30 | 显示全部楼层
to&nbsp;【75楼】&nbsp;Schneider123

&nbsp;&nbsp;&nbsp;&nbsp;你说的很对。谢谢你。又抓出来一个笔误。^_^

出0入0汤圆

发表于 2008-12-21 14:25:16 | 显示全部楼层
460页&nbsp;&nbsp;&nbsp;“全局变量&nbsp;NumberB"&nbsp;&nbsp;我觉得应该是&nbsp;“局部变量“。

出0入296汤圆

 楼主| 发表于 2008-12-21 15:34:06 | 显示全部楼层
这里是全局变量&nbsp;NumberB,没有错的。不过应该写得更清楚一些:模块内部的全局变量&nbsp;NumberB。

NumberB不是局部变量,不过你可以理解为是模块局部变量。

出0入0汤圆

发表于 2008-12-21 18:27:43 | 显示全部楼层
请教版主一个问题,在书中我读到“#define&nbsp;INSERT_TIMER1_OVF_ISR_CODE&nbsp;SEI();Insert_Timer1_OVF_ISR_Code();”,请问,在“#define&nbsp;INSERT_TIMER1_OVF_ISR_CODE&nbsp;SEI();”后面的那句“Insert_Timer1_OVF_ISR_Code();”,是什么意思,有什么功用,希望版主不吝赐教,多谢。

出0入296汤圆

 楼主| 发表于 2008-12-21 18:35:33 | 显示全部楼层
#define&nbsp;INSERT_TIMER1_OVF_ISR_CODE&nbsp;SEI();Insert_Timer1_OVF_ISR_Code();

约等效于

#define&nbsp;INSERT_TIMER1_OVF_ISR_CODE&nbsp;{SEI();Insert_Timer1_OVF_ISR_Code();}

出0入0汤圆

发表于 2008-12-21 18:55:22 | 显示全部楼层
多谢楼主。

出0入0汤圆

发表于 2008-12-22 08:54:31 | 显示全部楼层
沈阳博库撤场,75折买了搂主得大作,拜读之后感觉受益不浅!

我刚刚接触AVR,搂主讲的很清楚,是本入门的好书!!!!1!

出0入0汤圆

发表于 2008-12-31 21:50:18 | 显示全部楼层
谢谢suiming对我们工作成果的肯定:)

出0入0汤圆

发表于 2009-2-28 14:37:33 | 显示全部楼层
呵呵刚买了一本,这里刚看完勘误表

(原文件名:图片 040[1].jpg)

出0入296汤圆

 楼主| 发表于 2009-2-28 20:20:50 | 显示全部楼层
to 【74楼】 jupitermu
    您的钢笔很面熟……

出0入0汤圆

发表于 2009-3-8 00:43:05 | 显示全部楼层
学习《深入浅出AVR单片机》中

出0入0汤圆

发表于 2009-3-13 14:02:54 | 显示全部楼层
谢谢ql103的热心,低位传送是说串口移位寄存器将移入的数据按照“低位在前”的方式逐位送出。而0x15和0b00010101的书写方式属于“给人看”的表达式形式,不会因为“高位在前”还是“低位在前”就改变了书写的顺序。否则没有人能分辨出0xF0和0x0F是不是同一个东西。

再次感谢我们的热心读者。
P235的图是不是画的有点问题???????????谢谢!

出0入296汤圆

 楼主| 发表于 2009-3-13 14:25:51 | 显示全部楼层
to 【77楼】 lcd1984
    不明白,关于图的问题,您能把您的疑问描述的详细一些么?

出0入0汤圆

发表于 2009-3-17 16:00:33 | 显示全部楼层
傻孩子,书里的P348页中间灰底部分:n=7;n=8;n=9三个的运算结果都差了一位。

出0入296汤圆

 楼主| 发表于 2009-3-17 20:12:27 | 显示全部楼层
果然!!!!!!!!!!
谢谢你。

出0入0汤圆

发表于 2009-3-18 10:28:03 | 显示全部楼层
第357页最后那个宏定义,第2个也应为CIRCLE_R,这里写成了CIRCLE。
呵呵,都是小问题,本来不值得提,但是越严谨越好。

出0入0汤圆

发表于 2009-3-18 10:55:23 | 显示全部楼层
第362页最后的结构体定义开头注释部分多了一个“将”;最后是不是该加个分号呢?

出0入0汤圆

发表于 2009-3-18 13:18:39 | 显示全部楼层
刚刚在当当网买了这本书.回来后得认真学习了.

出0入296汤圆

 楼主| 发表于 2009-3-18 17:31:40 | 显示全部楼层
谢谢大家的提醒,下一版的时候一定都逐一纠正。

出0入0汤圆

发表于 2009-3-28 11:04:01 | 显示全部楼层
P471第二段代码,第二个Device_INIT();应该是Driver_INIT();

出0入0汤圆

发表于 2009-3-28 12:55:07 | 显示全部楼层
>>第三篇勘误表
--------------------------------------------------------------------------------


1、394页 图12-5中,最后一个矩形框中的 2 BYTE                 应改为: 4 BYTE
2、348页 中间的代码 n = 7、8、9的部分,x<<n的结果都少左移了一位

第348页的是多移还是少移了一位啊

出0入296汤圆

 楼主| 发表于 2009-3-29 01:22:47 | 显示全部楼层
少移了一位……

出0入0汤圆

发表于 2009-4-4 23:16:05 | 显示全部楼层
47页 插图提示中的“把线卡在外壳的空袭里,” 应该是“外壳的空隙里” 不过地球人都能看懂,都知道那个意思 我姑且和大家来凑凑热闹。书写的很不错 才买回来3天现在就看到了90多页了 多谢作者 以后继续支持

出0入296汤圆

 楼主| 发表于 2009-4-5 13:04:17 | 显示全部楼层
- -b瀑布汗……

出0入0汤圆

发表于 2009-4-7 18:05:53 | 显示全部楼层
能否弄PDF的。。。

出0入0汤圆

发表于 2009-6-18 22:00:26 | 显示全部楼层
在图书馆找三天了。。。。。。。。。

出110入26汤圆

发表于 2009-8-22 16:51:44 | 显示全部楼层
看勘误表错误的问题不是很大

出0入0汤圆

发表于 2010-1-22 16:37:16 | 显示全部楼层
mark ,论坛推荐的新手编译器是GCC,本书是ICC,我改选用那个呢

出0入0汤圆

发表于 2010-1-30 12:27:20 | 显示全部楼层
P76 页 的傻孩子注 中 提到“从送出数码管2的段码,到关闭数码管1的公共端,只有   微秒级(??)  的时间,数码管是不会在这样短的时间内发光的。” 但是根据P77页的程序来看

        PORTD=DisTab[0x07];
        PORTC=Led_2;            //驱动数码管2
        Delay_ms(3);
        PORTC=Led_M;            //数码管熄灭

应该不是微秒级的(都包括了 Delay_ms(3); )了,注释是不是应该改一下才能讲的更准确呢?


不过单对“只有微秒级的时间,数码管是不会在这样短的时间内发光的。”我是赞同的

出0入296汤圆

 楼主| 发表于 2010-1-30 12:50:09 | 显示全部楼层
嗯……我不是很理解楼上的意图,能说得更详细一些么?

出0入0汤圆

发表于 2010-1-30 13:35:46 | 显示全部楼层
两点疑问A和B。

在书中第三章 数码管的显示(下) 讲动态驱动2个数码管显示的实现方法中曾提到:
“有读者可能会问,送出数码管2的段码时,数码管1的公共端仍然处于驱动状态,为什么没有造成数码管1显示混乱呢?这是因为单片机的程序运行速度非常快,从送出数码管2的段码,到关闭数码管1的公共端,只有微秒级的时间,数码管是不会在这样短的时间内发光的。 所以没有必要在送出数码管2的段码前关闭数码管1的公共端驱动信号。”

实际程序如下:
while(1)
    {
        PORTD=DisTab[Led_H];
        PORTC=Led_1;            //驱动数码管1
        Delay_ms(3);
        PORTD=DisTab[0x07];
        PORTC=Led_2;            //驱动数码管2
        Delay_ms(3);
        PORTC=Led_M;            //数码管熄灭
        Delay_ms(14);
    }

从PORTD=DisTab[0x07];  送出数码管2的段码 到PORTC=Led_M=0b11111111 两个数码管全熄灭;  用时至少3ms=3000us(已经不是微秒级了)  数码管在这样的时间内是否会发光呢-----A疑问?
如果人的眼睛在3ms内能看清的话,就能看到显示混乱了吧(当然人眼没有那么快)

鉴于以上认识,我个人觉得应该在送出数码管2的段码前关闭数码管1的公共端驱动信号。----B疑问

while(1)
    {
        PORTD=DisTab[Led_H];
        PORTC=Led_1;            //驱动数码管1
        Delay_ms(3);
     =================   熄灭数码管1
        PORTD=DisTab[0x07];
        PORTC=Led_2;            //驱动数码管2
        Delay_ms(3);
        PORTC=Led_M;            //数码管熄灭
        Delay_ms(14);
    }

不知两处疑问认识是否到位,还请版主批评指教。
一下是书中源码:
led_dis.h
/*********************************************************/
/*程序名称:        数码管段码表                                 */
/*程序开发:        江海波                                       */
/*编写时间:        2007年4月5日                                 */
/*软件环境:        ICCAVR                                       */
/*硬件环境:        数码管a段对应MSB                             */
/*MCU:                                                   */
/*程序版本:        V1.00                                                 */
/*最后修订时间:                                         */
/*修订部分说明:                                         */
/*********************************************************/

#define Led_P 0x10
#define Led_L 0x11
#define Led_H 0x12
#define Led_U 0x13
#define Led_r 0x14
#define Led__ 0x15
#define Led_- 0x16

const unsigned char DisTab[]=
{
        0xFC,0x60,0xDA,0xF2,0x66,        //0,1,2,3,4
        0xB6,0xBE,0xE0,0xFE,0xF6,        //5,6,7,8,9
        0xEE,0x3E,0x9C,0x7A,0x9E,        //A,b,C,d,E
        0x8E,0xCE,0x1C,0x6E,0x7C,        //F,P,L,H,U
        0x0A,0x10,0x02                        //r,_,-
};

delay.h
/*********************************************************/
/*程序名称:        软件延时函数                                 */
/*程序开发:        江海波                                       */
/*编写时间:        2007年4月1日                                 */
/*软件环境:        ICCAVR                                       */
/*硬件环境:        ATmega48/88/168 CPU时钟频率8MHz              */
/*MCU:                ATmega48/88/168                              */
/*程序版本:        V1.00                                                 */
/*最后修订时间:                                         */
/*修订部分说明:                                         */
/*********************************************************/

void Delay_ms(unsigned int Time)
{
    unsigned char n=0;
    while(Time>0)
    {
        for (n=1;n<187;n++)
        {
            NOP();
        }
        Time--;
    }
}

/*********************************************************/
/*                                                       */
/*           实例5 数码管的显示(下) 源程序             */
/*                                                       */
/*                   编写:江海波                        */
/*                                                       */
/*                2007-03       V1.0                     */
/*                                                       */
/*         提示 : 本程序仅随本书使用,保留版权            */
/*              实例代码用于工程时应谨慎!               */
/*                                                       */
/*             E-mail : soundman@sohu.com                */
/*                                                       */
/*********************************************************/

#include <iom48v.h>
#include <macros.h>
#include "delay.h"
#include "led_dis.h"

#define Led_1 0b11011111                //数码管1公共端驱动管脚,PC.5
#define Led_2 0b11101111                //数码管2公共端驱动管脚,PC.4
#define Led_M 0b11111111                //数码管熄灭

void main (void)
{

    DDRC=0xFF;
    DDRB=0xFF;
    DDRD=0xFF;
    PORTC=0xFF;
    PORTB=0xFF;
    PORTD=0xFF;

    while(1)
    {
        PORTD=DisTab[Led_H];
        PORTC=Led_1;            //驱动数码管1
        Delay_ms(3);
        PORTD=DisTab[0x07];
        PORTC=Led_2;            //驱动数码管2
        Delay_ms(3);
        PORTC=Led_M;            //数码管熄灭
        Delay_ms(14);
    }
}

原谅我贴了这么多源代码 占了大家的视线,目的只为了版主能方便理解我这样口齿不清的人所说的问题

出0入0汤圆

发表于 2010-1-30 17:38:18 | 显示全部楼层
严格说应该在送显第二个管子前将第一个管子的驱动端关闭,不过PORTD=DisTab[0x07];之后的3mS内是在驱动数码管2,数码管1已经关闭掉了,3mS的时间LED已经发光了,人眼也已经看到了。看来我们考虑简单化的时候忽略了这点了,感谢楼主的细心。

出0入0汤圆

发表于 2010-1-30 20:54:32 | 显示全部楼层
感谢作者的回复 指出了我认识上的不足点。

总结:
PORTC=Led_2;            //驱动数码管2
实际上就是
PORTC=Led_2=0b11【10】1111;  //【】中的1代表关闭数码管1的驱动端,【】中的0代表打开数码管2的驱动端。
                             //功能:驱动数码管2 ,且关闭数码管1显示

所说的“只有微秒级的时间”是指
从        PORTD=DisTab[0x07];
到       PORTC=Led_2;            //驱动数码管2 【且关闭数码管1】
执行完毕的时间


反思了一下 ,看来还是因为自己没有潜下心来认真看源程序,而造成了错误的认识。
再次感谢作者为我们带来这样一本好书。

出0入0汤圆

发表于 2010-2-14 20:00:02 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-23 20:52:17 | 显示全部楼层
我留个记号,以后看,可以吗
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-2 14:45

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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