搜索
bottom↓
回复: 276

《AVR单片机嵌入式系统原理与应用实践》勘误与修正(2010/04/10 新增加14处) 并继续

[复制链接]

出0入0汤圆

发表于 2007-10-30 19:41:07 | 显示全部楼层 |阅读模式
说明:

今天得到北航出版社的消息,该书去年10月出版,第一次印了5000册,现在库存还有300册(感谢大家的支持!),准备加印。

我已经将书中的错误整理成DOC和PDF文件,发到出版社,加印的书中错误就会少多了。

现在将doc文件上传(119处),方便已经购书的朋友自己做修正(抱歉了。)
点击此处下载 ourdev_352992.doc(文件大小:974K) (原文件名:AVR单片机嵌入式系统原理与应用实践_勘误表.doc)

08/07/22,补充修改2(21处),感谢ep02的指正。点击此处下载 ourdev_355191.doc(文件大小:30K) (原文件名:AVR单片机嵌入式系统原理与应用实践_勘误表(2).doc)

08/07/23,补充修改3(11处),感谢ep02的指正。点击此处下载 ourdev_355970.doc(文件大小:31K) (原文件名:AVR单片机嵌入式系统原理与应用实践_勘误表(3).doc)


作者本人在此对于关心和支持本书的广大读者和网友,尤其是那些本着认真负责的态度,指出本书中错误之处的朋友,表示真诚的感谢!
同时作者再次向阿莫先生和“我们的AVR”致谢,为大家提供了一流的相互交流学习的平台和空间。

======================================================================================================
通告(2008.9.5):

第2次加印3000册已经上市,上面的151处错误已做了改正。

======================================================================================================
通告(2009.6.6):

在第2次加印版的基础上,还发现19处错误。这些错误在第1、2次印刷本中都存在的,请购买过本书的读者点击此处下载 ourdev_451169.doc(文件大小:103K) (原文件名:《AVR单片机嵌入式系统原理与应用实践》一书勘误修正表(4).doc),自己做修改。抱歉了。

以上19个错误将在第3次印刷版中被改正。

作者本人在此对于关心和支持本书的广大读者和网友,尤其是那些本着认真负责的态度,指出本书中错误之处的朋友,表示真诚的感谢!
他们是本贴198、200、201、202、206、207、209、222楼的朋友。

=======================================================================================================

通告(2010.4.10):

尽管已经第3次加印了,但在网友的帮助下,又发现14处错误。这些错误在第1、2、3次印刷本中都存在的,请购买过本书的读者点击此处下载 ourdev_545387.rar(文件大小:17K) (原文件名:《AVR单片机嵌入式系统原理与应用实践》一书勘误修正表(5).rar) 自己做修改。抱歉了。

以上14个错误将在第4次印刷版中被改正(个人希望有第4次印刷本)。


作者本人再次对关心和支持本书的广大读者和网友,尤其是那些本着认真负责的态度,指出本书中错误之处的朋友,表示真诚的感谢!

==========================================================================================================
通告(2010.7.28):  

    刚收到出版社的邮件,由于北航出版社《AVR单片机嵌入式系统原理与应用实践》一书库存不多,而且最近定购书比较多(为下学期做教材),所以他们已经再次加引了3000册。(本书总印数达到14000册)

    由于时间紧张,而且原来出版社负责与我联系的人员离开,所以本次加印没有做任何的修改。

    特此通告各位。

    第3次加印后书中的14处的错误需要修改(见239楼通告贴)只能等下次了。


   作者本人再次对关心和支持本书的广大读者和网友,尤其是那些本着认真负责的态度,指出本书中错误之处的朋友,表示真诚的感谢!并希望大家继续提出问题,以便有可能在后面的加印中改正。

问题贴请继续发到楼下,谢谢!

阿莫论坛20周年了!感谢大家的支持与爱护!!

如果想吃一顿饺子,就得从冰箱里取出肉,剁馅儿,倒面粉、揉面、醒面,擀成皮儿,下锅……
一整个繁琐流程,就是为了出锅时那一嘴滚烫流油的热饺子。

如果这个过程,禁不住饿,零食下肚了,饺子出锅时也就不香了……《非诚勿扰3》

出0入0汤圆

发表于 2007-10-30 19:54:43 | 显示全部楼层
书还没见到,看勘误表过过瘾!

出0入0汤圆

发表于 2007-10-30 19:56:45 | 显示全部楼层
第一个错误真的很难发现的!佩服马老师!

出0入0汤圆

发表于 2007-10-30 21:06:35 | 显示全部楼层
是啊,第一个错误我对比了半天才看出来。看来,马老师的书尽可以大胆、放心地购买了。

出0入0汤圆

发表于 2007-10-30 21:57:18 | 显示全部楼层
cltemail ,我也是一样,看了半天才看来.
头像被屏蔽

出0入0汤圆

发表于 2007-10-30 22:55:02 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2007-10-30 23:04:32 | 显示全部楼层
请问哪有卖的?
头像被屏蔽

出0入0汤圆

发表于 2007-10-30 23:07:03 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2007-10-30 23:12:24 | 显示全部楼层
j是哈 书什么时候能到 好买一本
头像被屏蔽

出0入0汤圆

发表于 2007-10-31 07:29:23 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2007-10-31 09:48:14 | 显示全部楼层
书已收到,已按楼主更正

出0入0汤圆

发表于 2007-10-31 10:11:50 | 显示全部楼层
AVR 冷偏我不敢苟同 无锡的新华书店 AVR单片机书比51的多 没数过 10+种 可能阿莫低估了阿莫们为ATMEL做出的贡献 哈哈

出210入8汤圆

发表于 2007-10-31 10:16:35 | 显示全部楼层
【10楼】 binglin 炳哥哥
不是吧???我在深圳这么近都没到,你在江门都收到了?没理由啊

出0入0汤圆

发表于 2007-10-31 10:50:33 | 显示全部楼层
哦,你不说我还真忘了,快去订单处告诉MM们已收到货.
头像被屏蔽

出0入0汤圆

发表于 2007-10-31 11:01:54 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽

出0入0汤圆

发表于 2007-10-31 11:03:04 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出210入8汤圆

发表于 2007-10-31 12:16:32 | 显示全部楼层
呵呵,快递员送到另外一栋去了,让我多等了一会儿,书收到了,还收到了阿莫送的CD,太感谢了!

出0入0汤圆

发表于 2007-10-31 12:52:50 | 显示全部楼层
谁说无锡新华书店AVR的书比51的多啊,我可是几乎每周都去那里搜索,看的。可能连5种都没有。51类的是最多的,其次是PIC也有好多本。C8051F有几本,MSP430有1或2本,凌阳的也有,ARM,嵌入式也有不少。

出0入0汤圆

发表于 2007-10-31 14:49:09 | 显示全部楼层
17楼  少于5种  我请你吃饭 如何?

出0入0汤圆

发表于 2007-10-31 15:04:54 | 显示全部楼层
建议马老师要求出版社在第二次印刷的时候更正里面的错误,这样这本书就更完美了

出0入0汤圆

 楼主| 发表于 2007-10-31 17:06:25 | 显示全部楼层
本书第一次印刷为5000本,如果市场反映好的话出版社会加印的。但这种纯技术书销量不会太大的,毕竟不是“品三国”呀^_^。

尽管本书是以AVR做主线的纯正教课书,但由于目前国内高校中还是上51的多,采用本书的人也不会多到那里去的。因此我并不抱乐观的态度。

如果出版社要第二次印刷的话,会与我联系,做些更正工作的。

最近1-2年中,关于AVR的技术书籍相对多了一点,但包括以前出版的,总量也就20本左右吧,绝对是不能与51的书相比的。

本书前11章可在本站中下载,但我个人认为后面的2篇更能体现本书的特点。作为教课书,书中的例子都是比较简单和经过简化的,但重要的是其设计思想和处理方法,这些是核心的东西。掌握了核心的东西,不管是用AVR,还是51、PIC,都能得心应手。

再次感谢大家对本书关注,以及对我工作的评价和建议,包括批评和拍砖^_^

出0入0汤圆

 楼主| 发表于 2007-11-2 02:05:50 | 显示全部楼层
咳,出版前校对不下5遍,可是还有错误。这几天会抽时间再检查1次。

前4章已经看过了,错误的地方已经贴在1楼。看来后面还要补充的。
头像被屏蔽

出0入0汤圆

发表于 2007-11-2 06:23:08 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2007-11-2 09:00:35 | 显示全部楼层
6章21页例子:
   void display(void)
{
                char temp,i;
        for(i=0;i<=5;i++)
                {
                        temp = led_7[dis_buff];
                        if (point_on && (i==2 || i==4))
                                HC164_send_byte(temp | 0x80);
                           else
                                   HC164_send_byte(temp);
                        PORTC = position;//多余
                delay_ms(2);//多余
                PORTC = 0xff;//多余
          }
}
。。。。。。。。。




个人认为:
         PORTC = position;
                delay_ms(2);
                PORTC = 0xff;
为多余,容易让读者不好理解,例子要能够完美的再现问题的解决.

出0入0汤圆

 楼主| 发表于 2007-11-2 16:43:48 | 显示全部楼层
23楼:这是在没有介绍和使用T/C的动态扫描显示函数,在后面的章节中还会出现,配合T/C的使用,将会有变化,并且越来越精练。

但就这个程序讲,你并没有说明为什么是“多余”,你是否去掉试过了?出现什么情况?还是凭你的想象?我下面有很多的思考,你能正确的回答吗?看来你还需要努力的^_^

出0入0汤圆

 楼主| 发表于 2007-11-3 11:55:26 | 显示全部楼层
针对23楼的问题,给出我的解答。

1。首先这个程序是一个刚开始的学习例程,在还没有学习使用T/C的情况下,采用软件延时完成的。在我的书中明确的提出,尽量不要采用软件延时的做法(除非是几个us的延时),对于ms级以上的延时应该使用T/C。

2。实际上,很多教科书中的例子中大量使用了软件延时,典型的就是键盘的消抖。在一个实际的应用系统中,采用软件延时不是一种非常好的方法,除了影响MCU的效率,还会带来一些其它的弊病。但还是很多人使用软件延时,受害不浅。在我书的第8章介绍了T/C的使用后,就不使用软件延时,凡对于ms级的延时使用T/C处理。个别例子中采用了软件延时,也只是为了简化程序,突出重要的地方。

3。回到上面的例子,设计思路是25ms主程序一次循环,其中12ms应用与LED动态扫描,13ms留给做其它的工作。这样,LED的扫描频率为40次,不会闪烁。12ms必须平均分配给6个LED,每个2ms,保证亮度均匀。

4。23楼贴出的函数是LED扫描函数,调用一次,完成6个LED各点亮2ms,执行时间为12ms。

5。下面就3句“多余”的语句做说明:
    for循环为6次,功能是每次点亮一位LED。
    a.前面的语句是送出相应位的段码,送出后该位并没有点亮。
    b.PORTC = position;是控制该位的I/O输出低电平,这样就点亮了一位LED
    c.delay_ms(2);这个延时是点亮后保持2ms。如果将其变成delay_ms(1),LED的亮度就会降低,当然留做其它事情的时间就多了。
    d.PORTC = 0xff;是关闭所有的LED,作用是防止LED显示的拖尾现象。
      去掉该句会产生什么现象呢:假定当前显示第3位,数字是1,点亮2ms;然后程序循环,送出第4位的段码(比如是数字8);由于第3位的位控还是0电平,实际上第3位显示8了,当然时间很短,因为后面马上是第4位点亮了。实际上,第3位上显示1,保持了2ms,然后短暂的显示8,再熄灭掉,这就是拖尾的现象。
      可能会说,一般观察不到拖尾现象,可以去掉。但在这个例子中,就是不考虑拖尾情况,也不能去掉。考虑点亮第6位LED后,如果不关闭显示,程序去做其它事情了。这样第6的LED就不是点亮2ms了,而是13+2=15ms了。在外部的效果上,这一位的亮度比其它5个LED要亮的多。

6。我在书中,对这些问题都提出了思考,让读者考虑这些语句的作用,并自己验证。什么叫参考别人的程序,应该是彻底了解别人程序的设计思路,明了每一句语句的作用。只有这样,才能看到其好的方面,或不好的方面。如果认为不好,自己做相应的修改。

7。到第8章、第9章,可以看到动态扫描函数也相应的改动了,没有“delay”了。按键扫描中,就不使用什么“软件延时消抖”了,这个95%的教课书中的方法,误导了很多人。延时消抖的思想是对的,但采用delay死延时的处理方法是不明智的。

8。参考别人的程序实际上也是一把双韧剑。拿到好的程序,可以使你豁然明了,掌握了正确的思路和程序设计方法。而拿到不好的程序,如果自己消化功能不好的话,就会被其框死,自己永远得不到提高。所以对于初学者讲,选择一本好的教材和参考书非常重要,在正确的方法引导下,建立了好的基本思路和分析问题的方法,这样才能为今后正确参考别人的程序打好基础。

出0入0汤圆

发表于 2007-11-3 18:12:30 | 显示全部楼层
谢谢马老师回答,
   请注意,你这使用的是串转并,然后通过LED显示的例子,例子的最大的特点是使用少的2根IO口实现多位LED的显示,你这时候通过实现动态有什么意义了,而且多花了PORTC口(固然可以节电),工程运用不会这样的,串转并一般情况就是节省IO口和动态扫描花费的CPU时间.
             PORTC = position;//多余
                delay_ms(2);//多余
                PORTC = 0xff;//多余

出0入0汤圆

 楼主| 发表于 2007-11-3 19:36:41 | 显示全部楼层
我明白了,估计你没有仔细的看本章整个的内容,把这段程序理解成是静态显示的输出了。

1。在一开始我介绍了串转并的8路静态LED显示的设计,使用8片164,有电路图。但你贴的程序不是为此服务的。

2。接下来介绍了6位LED动态扫描方式,用PA口输出段码,PC口控制位,使用了14个I/O口。

3。而你所贴的程序是第三个例子,为了少用I/O口,加了1片164,使用了PA口2个I/O,但还是输出段码,仍然是动态扫描方式。这个方案是介于1和2的折中办法,增加少量芯片,留出更多的I/O口。

4。在后面的思考中,还要求考虑再增加1片芯片(如138),节省PC口的设计。

5。这些方法我都在产品设计中使用过,不是从节电出发,而是考虑成本。因为增加硬件是要成本的,如果I/O口够用,动态方式最省成本。但有时I/O还少一点,那么第3方案就是折中的方案。

6。至于静态显示和动态显示各自的优点和不足,已经在书中讲的很明白了。

出0入0汤圆

发表于 2007-11-4 18:34:44 | 显示全部楼层
马老师,您是专家,我是学生,不过我还是坚持我的意见.
   3。而你所贴的程序是第三个例子,为了少用I/O口,加了1片164,使用了PA口2个I/O,但还是输出段码,仍然是动态扫描方式。这个方案是介于1和2的折中办法,增加少量芯片,留出更多的I/O口。

  下面是我的意见:
  使用164以后,如果不从节电考虑.就不需要再使用动态扫,花CPU时间不说,还花掉几个IO脚(动态扫描),本来两个IO脚解决的问题(串口),您这样还要浪费多几个IO脚(不论138等解码.只是多和少).

出0入0汤圆

 楼主| 发表于 2007-11-4 19:06:44 | 显示全部楼层
1。应该要肯定程序没有问题,三句语句也不是多余的,是吗?

2。然后再讨论使用哪种方式显示的问题。

   如果在这种情况下,使用2个8位口采用动态扫描点亮8个LED,但系统还需要4个I/O做其它使用,那么就需要在下面2种方案中选择了。

   1。M16、8片164。特点:多出14个I/O(再用掉4个,多余10个无用),静态扫描,CPU化时间少,程序设计简单。
   2。M16、1片164。特点:多出6个I/O(再用掉4个,多余2个无用),动态扫描,CPU化时间多,程序设计复杂些。

看看价格:其它一样用M16,LED等。但第一个方案比第2个方案多用7片164。假定1片164为0.6,7片为4.2元。(7倍材料的运输费,7片164占PCB板的面积要大(PCB也贵),焊接点多费用也多,这些就不算了)如果你的产品年销1W,成本就多了4W。假如你是老板,你选择那个?

3。这是教材,还有个目的是让学生掌握更多的方法。如果你掌握了164的串出+动态扫描设计的话,那么对于164串出+静态显示的程序应该更简单的吧。

出0入0汤圆

发表于 2007-11-4 19:12:30 | 显示全部楼层
要我是老板,我把LED部分一个公板,CON4上面有CLK,DATA,VCC,GND,提供一个SDK包,以后复用

出0入0汤圆

 楼主| 发表于 2007-11-4 19:20:10 | 显示全部楼层
有呀,在16章的TWI中,最后就是介绍了一片可以管理8个led+64个键盘的芯片,与AVR只要3根连线的应用。

出0入0汤圆

发表于 2007-11-4 19:25:30 | 显示全部楼层
电子版没有,哎,如果能下载就好了

出0入0汤圆

 楼主| 发表于 2007-11-4 19:42:50 | 显示全部楼层
如果都贴在网上,偶就没有版权了。帖一部分也是偶的广告宣传策略^_^

出0入0汤圆

发表于 2007-11-4 19:56:56 | 显示全部楼层
马老师,在书的P534页,表A-16的第五行的熔丝状态配置CKSEL=000;SUT=01 , 应该为CKSEL=0001,SUT=01吧?

出0入0汤圆

 楼主| 发表于 2007-11-4 21:16:43 | 显示全部楼层
34楼:谢谢了,是漏掉数字了,我会改在上面。

查过了,你说是对,我原稿上有的,印刷排版漏了。

你已经看完了?提提意见吧,或还有什么地方不对。

出0入0汤圆

发表于 2007-11-5 19:47:43 | 显示全部楼层
马老师:我没看多少,有以下几个问题,不是知道是不是错误,请指正
1、P14 第十行 工作电压范围宽(2.7V~6.0V)现在AVR的picoPOWER系列是最低1.8V也可能是我理解错误……
2、P15 ATtiny85 的系统时钟最高是20M不是1M……
以下是官网上的资料

出0入0汤圆

 楼主| 发表于 2007-11-5 21:24:58 | 显示全部楼层
to【36楼】 jenkinsxu: 500Hz的脉冲信号送到PD3了吗?

to【37楼】 kingofkings: 谢谢!

出210入8汤圆

发表于 2007-11-6 12:11:24 | 显示全部楼层
马老师:P259页,第5行,“在一个PWN周期中”,是不是应该为:“在一个PWM周期中”?

出0入0汤圆

 楼主| 发表于 2007-11-6 13:17:05 | 显示全部楼层
谢谢39楼的朋友。

出0入0汤圆

发表于 2007-11-6 16:01:27 | 显示全部楼层
既然第一个错误出现,那么27页的也错了,翻开一看果然!!!!!!!!

===========================================================
谢谢!

出0入0汤圆

 楼主| 发表于 2007-11-6 16:43:30 | 显示全部楼层
为了方便购买本书的读者学习和参考,本人在拿到书后的第一时间里,花了5天时间将书仔细的核对了一遍。对书中的错误进行了更正,发布在楼主位,请大家注意,并致歉意。

书中可能还有错误的地方,欢迎大家批评指正,并发到此栏下。

再次向购买本书的读者、阿莫站长、以及关心本书的网友表示感谢!

出0入0汤圆

 楼主| 发表于 2007-11-6 17:03:52 | 显示全部楼层
在ICC中定义变量,请使用 unsigned char 声明试一下。在CVAVR中确省的char 表示为unsigned char

出0入0汤圆

发表于 2007-11-10 21:51:29 | 显示全部楼层
马老师,P35,倒数第6行,(512~64K)X16位,是否是(512~128K)X16位?

出0入0汤圆

发表于 2007-11-10 22:00:22 | 显示全部楼层
P35页,倒数第2行,$000,应改为$0000。

出0入0汤圆

发表于 2007-11-10 23:58:08 | 显示全部楼层
P45页,第11行,决大部分 改为 绝大部分。

出0入0汤圆

 楼主| 发表于 2007-11-11 01:05:51 | 显示全部楼层
谢谢ecat!

出0入0汤圆

发表于 2007-11-11 16:02:52 | 显示全部楼层
呵呵!马老师的:《AVR单片机嵌入式系统原理与应用实践》一书确实不错!虽然价格是52元,但书籍的质量和信息的容量确实对的起这个价格!所以,在书店的时候我只考虑了1分钟!!买回来仔细看,更坚定了我的选择!呵呵,我是用ICC AVR和GCC AVR的,没用过CVAVR,但我发现此书对CVAVR的介绍并不太浪费篇幅,主要还是在讲AVR的特殊寄存器和内部资源的用法 及原理!!呵呵,:《AVR单片机嵌入式系统原理与应用实践》一书的确很好啊!!刚买来半天,实在兴奋,若有说错欢迎拍砖!

出0入0汤圆

发表于 2007-11-11 17:18:25 | 显示全部楼层
P82,倒数4行,X,Rr  改为X+,Rr

出0入0汤圆

发表于 2007-11-11 18:04:36 | 显示全部楼层
P92,第7行:转到$000。 改为 转到$0000。

出0入0汤圆

 楼主| 发表于 2007-11-11 21:16:14 | 显示全部楼层
谢谢ecat,你比偶还仔细。

出0入0汤圆

发表于 2007-11-11 22:13:41 | 显示全部楼层
哎呀!!
读这本书的快成品书了!
好书就是好书。。。

出0入0汤圆

发表于 2007-11-12 15:36:52 | 显示全部楼层
今天跑到南京的长三角图书批发市场买了马老师的书,计算机类图书一律75折,价格还不错

遗憾是我还以为像M128上一样的是大开本,结果是小开本的

看前先来纠错哈

出0入0汤圆

发表于 2007-11-12 19:24:40 | 显示全部楼层
P192的HD44780引脚功能定义表下面的第二行字REM应该是RAM吧!

出0入0汤圆

发表于 2007-11-12 22:33:52 | 显示全部楼层
P152,8行 Programmer 建议改成 Chip Programmer

出0入0汤圆

 楼主| 发表于 2007-11-13 12:14:28 | 显示全部楼层
to 55 楼:我打错了,马上纠正。
to 56 楼:我看过了,CVAVR的菜单选项名称是Programmer,不用改的。(1.25.7a)

谢谢2位。

出0入0汤圆

发表于 2007-11-13 15:01:10 | 显示全部楼层
我的CVAVR版本是1.24.8b,看来是版本差异了。

出0入0汤圆

 楼主| 发表于 2007-11-13 15:05:26 | 显示全部楼层
我书附带的CD中,提供的是CVAVR最新DEMO版的软件,限制代码2K。对于第18章的程序可能不够了。其它的例子应该可以用。

出0入0汤圆

发表于 2007-11-13 22:05:30 | 显示全部楼层
今天在当当网买了马老师的书了,8折,而且免了邮费,刚刚到手,真的不错。其实手头的AVR资料是很多的,本可以不需要这本书的,不过那么多的资料都是打印下来的,有时候查找时还真的不方便,放的又乱,所以还是买一本马老师的书,参考也方便了,而且还给几个同事也带了几本。

出0入0汤圆

 楼主| 发表于 2007-11-13 22:25:15 | 显示全部楼层
谢谢楼上的支持了。
希望书对你及你的同事有帮助,并欢迎拍砖^_^

出0入0汤圆

发表于 2007-11-14 02:02:08 | 显示全部楼层
买书的人好多啊,5000册看样子很快就要消费掉了!恭喜马老师!

  终于把第一篇看完了,把我以前零星自学的内容又总结归纳了一遍,还是很有收获的。

  该书虽然是一本面向高校的单片机教才,但我认为它更具有工程参考价值,特别是书中花大篇幅讲解的内容确实是在工作中用的比较多的。

  很希望这本书可以在国内高校普及,取代传统的51教材。

出0入0汤圆

 楼主| 发表于 2007-11-14 17:44:30 | 显示全部楼层
谢谢ecat!
更希望你能仔细的看后面的章节,到不是内容精彩,是帮我找书中的问题。
你已经帮助找到了很多的错误,非常感谢!

出0入0汤圆

发表于 2007-11-14 20:55:02 | 显示全部楼层
马老师,P226,4行 指令out sreg,temp 的操作数部分sreg,temp 被移到了注释段了。

出0入0汤圆

发表于 2007-11-14 22:59:04 | 显示全部楼层
第85页有两个elpm rd,z+的 是不是印刷错了啊

出0入0汤圆

发表于 2007-11-14 23:24:37 | 显示全部楼层
楼上好细心!倒数第3行 LPM 应该写成 ELPM。
ELPM Rd,Z 这条指令的说明中 RAMPZ:Z 我不清楚是什么含义,马老师能给解释一下吗?

出0入0汤圆

发表于 2007-11-14 23:32:30 | 显示全部楼层
同时发现,P85,倒数16行 RAMPZ 写成了PAMPZ。

出0入0汤圆

发表于 2007-11-14 23:50:05 | 显示全部楼层
RAMPZ 寄存器我在M128中找到了,M16没有,也就是说这条指令因M16中FLASH不够大,是用不到的?请马老师解惑。

出0入0汤圆

 楼主| 发表于 2007-11-15 00:54:35 | 显示全部楼层
ELPM指令是扩展的AVR指令,主要针对FLASH大于64K字节(32K字)使用的,如M128。对于M16等FLASH小与64K字节的AVR是不支持的。

拿M128为例,它的FLASH是128K字节,64K字,因此它的内部有一个寄存器RAMPZ,实际该寄存器在M128中只用到最底的1位。

这样RAMPZ的最低位,加上Z寄存器的16位,构成17位的地址指针,可以寻址整个FLASH的128K字节空间。

还可以这样理解,RAMPZ的最低位,加上Z寄存器的高15位,构成16位的地址指针,可以寻址整个FLASH的64K字空间,而Z寄存器的最低位的0和1,表示字的高位字节和低位字节。

采用后一种的理解方式相对好些,当涉及到BOOTLOAD时,就比较容易理解如何定位和操作的。

出0入0汤圆

发表于 2007-11-15 10:38:13 | 显示全部楼层
谢谢马老师!

出0入0汤圆

发表于 2007-11-15 19:38:01 | 显示全部楼层
请问马老师:第222页倒数第2行if(count)--counter;不知道是什么意思,是不是有错?

出0入0汤圆

发表于 2007-11-15 20:02:41 | 显示全部楼层
楼上,你自己倒是写错了哈哈。
如果counter不为零,counter自减。

出0入0汤圆

 楼主| 发表于 2007-11-15 20:08:25 | 显示全部楼层
71楼:没有错,相当下面的形式:

if (counter)
   --counter;
else
   counter = 15;

出0入0汤圆

发表于 2007-11-15 21:10:07 | 显示全部楼层
哦,回得真快,打扰了,谢谢!

出0入0汤圆

发表于 2007-11-16 16:23:01 | 显示全部楼层
马老师:书中178页图6-12,8段字型“点”为P。179页表6-3,PA7控制“点”标的是h.是否需要统一标注,好理解啊。

出0入0汤圆

 楼主| 发表于 2007-11-16 19:32:59 | 显示全部楼层
采纳75楼的建议.谢谢!

出0入0汤圆

发表于 2007-11-17 00:43:37 | 显示全部楼层
马老师,P262,第6行,看上去很多余啊?

出0入0汤圆

 楼主| 发表于 2007-11-17 14:11:38 | 显示全部楼层
78楼:在这个例子中是多余的,只是留个伏笔.在P263的思考和实践中,用到该语句做为一个分析和实践问题.

出0入0汤圆

发表于 2007-11-17 17:40:05 | 显示全部楼层
P264,第14行,OCF1A,OCF1B 漏掉了F。

出0入0汤圆

 楼主| 发表于 2007-11-17 20:52:35 | 显示全部楼层
OC1A\OC1B是指中断请求信号,与263页图8-19中的信号描述一致,它们在标志寄存器中的名字叫OCF1A\OCF1B.不用改的.

出0入0汤圆

发表于 2007-11-17 22:15:19 | 显示全部楼层
哦,原来这样,谢谢!

出0入0汤圆

发表于 2007-11-18 07:56:19 | 显示全部楼层
P27页倒数第2行的“ATmage16”应改为“ATmega16”。  41楼提醒过。
P318页倒数第4行的“以保证换算的正确型”是否改为“以保证换算的正确性”。

===================================
谢谢提醒.并做了修改.

出0入0汤圆

发表于 2007-11-19 10:35:54 | 显示全部楼层
P300,程序中的倒数第二条指令有部分印刷重叠。

=============================
谢谢.

出0入0汤圆

发表于 2007-11-19 14:03:36 | 显示全部楼层
多谢马老师!
书已经拿到了!
马老师如此严谨,佩服!
我从来没有遇到如此严谨的老师,我相信成为你的学生真是人生一大幸事!

出0入0汤圆

发表于 2007-11-22 00:36:46 | 显示全部楼层
P307,12行,非线形误差 应当该为 非线性误差。

出0入0汤圆

 楼主| 发表于 2007-11-22 17:47:33 | 显示全部楼层
谢谢86楼。
这2个字已经有两处错了,该用“形”用了“型”,而用“型”的地方却用了“形”。需要补语文了。^_^

出0入0汤圆

发表于 2007-11-22 18:27:07 | 显示全部楼层
马老师,非线型误差是什么概念呢?我以前只知道有非线性误差的。

出0入0汤圆

发表于 2007-11-22 18:56:02 | 显示全部楼层

出0入0汤圆

 楼主| 发表于 2007-11-22 23:58:36 | 显示全部楼层
误差可以分为线性和非线性2种.

线性误差主要是由于0点(偏置电压)的不准或放大倍数的偏差造成的,误差随电压的升高,成比例的增加.这种误差是可以矫正的.

非线性误差是由于器件材料或随机干扰造成的,通常没有规律,也很难矫正.

本章参考文献中,有ATMEL公司对AVR的ADC误差分析和如何矫正的参考资料,可以进一步参考学习.

出0入0汤圆

发表于 2007-11-23 09:17:45 | 显示全部楼层

出0入0汤圆

发表于 2007-11-23 09:25:45 | 显示全部楼层
昏倒!看来我要和马老师斗争了。
我是在问马老师什么是"非线型"?你在楼主位的勘误公告中特别把 非线形 改为 非线型 ,我非常不理解,因为我只知道 非线性。

==================
谢谢了.现在应该对了吧.

==================
终于改对了^_^

出0入0汤圆

发表于 2007-11-24 10:19:14 | 显示全部楼层
P354,第6行,建议加入一个“沿”字:
移位寄存器中的数据是通过Latch控制线上的上升(沿)打入到锁存器中的。

======================
谢谢,改在上面了。你已经完成2/3了。

出0入0汤圆

发表于 2007-11-24 19:46:44 | 显示全部楼层
马老师,P63,第7行的  "LDD R16,Y+31"应该为"LDD R16,Y+$31"吧,否则后面得注释不正确

========================
是的,谢谢.

出0入0汤圆

发表于 2007-11-24 20:28:49 | 显示全部楼层
马老师,P47,第4行的“一组溶丝位SUT、CKSEL...”,“溶丝”应该为“熔丝”

========================
谢谢.

出0入0汤圆

 楼主| 发表于 2007-11-24 20:43:33 | 显示全部楼层
到目前为止,已经有52处改动了。出汗了......

出0入0汤圆

发表于 2007-11-24 21:46:08 | 显示全部楼层
真正出汗的应该是本书的两位责任编辑和北航出版社。

出0入0汤圆

 楼主| 发表于 2007-11-24 21:50:23 | 显示全部楼层
不要搞大了.作者是我本人,当然是我要负责的.

出0入0汤圆

发表于 2007-11-24 23:43:22 | 显示全部楼层
P389,第7行,分离器件 应改为 分立器件。

=========
谢谢。

出0入0汤圆

发表于 2007-11-25 13:17:09 | 显示全部楼层
P388,第9行,硬件低层 应改为 硬件底层 否则于P401,第12行矛盾。
类似的问题还有P351,第9行。
              P391,第9行。
这样的问题可能还不只这几处,马老师要好好检查一下了。

出0入0汤圆

发表于 2007-11-25 13:25:02 | 显示全部楼层
P407,第1行,I2C印刷错误。

出0入0汤圆

发表于 2007-11-25 14:16:45 | 显示全部楼层
P409,13行,正确受到 应改为 正确收到。

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

本版积分规则

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

GMT+8, 2024-3-28 22:23

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

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