这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » AVR 关于AVR书的一点看法

共3条 1/1 1 跳转至

AVR 关于AVR书的一点看法

院士
2006-09-17 18:14:16     打赏
AVR 关于AVR书的一点看法



关键词: 关于     一点     看法    

院士
2006-12-22 22:43:00     打赏
2楼
问 我买的第一本书是 《AVR单片机原理及应用》 宋建国 ,那时刚学AVR,国内仅有的一本AVR书籍,书上内容大多由DATASHEET翻译过来,但对认识和了解AVR这款新的单片机,确实起了不少作用。

后来,在购SLAVR时,顺便买了 《AVR高速嵌入式单片机原理与应用》一书,那时刚出来,是国内的第二本AVR书籍。和第一本书比较,每款型号的介绍,也是大部分由DATASHEET翻译,都有一大段相同内容,有点CTRL-C, CTRL-V之嫌,浪费纸张。排版还没有第一本书好,整体感觉比较零乱。应用部分的程序,看起来总觉得不爽,风格不够规范。所以,这本书对我没有起到什么帮助,我情愿翻第一本书。

后来出了上书的修订版,我只看了一下封面,内容不知有没有改善。

五一期间,为了帮朋友用AVR搞个测试装置,又买了本《AVR单片机应用技术》 李勋 ,这本书感觉不错,大部分内容看起来都是作者亲手整理出来的,行文不错,特别是程序的风格很好,。我觉得没有第六章更好,内容在网上都能找到,有点像做广告,毕竟纸墨是要读者花钱买啊。

还有一本《AVR单片机应用设计》丁化成 ,从目录看,是双龙的血统,没有读。

上个月,买了《ATmega 8原理及应用手册》,现在已经看到要出修订版了,我还没有来得及读呢,真不知如今的出版也发展到如此之快。

所以,当《AVR单片机C语言开发入门指导》出来时,我一直在犹豫,要不要买来看看,在书架上翻了一下,感觉内容有点杂。也许通过网上找资料,看User Menual,学的同样很好。


以上只是我的一点个人看法,并无他意!但这些确实一直憋屈了很久,相信其他读者也有类似想法。真的,期待精品书籍,让AVR也想51那样流行!
1: 严重同意精辟, 2: 呵呵,说的有道理,同感痛感 3: 同感.我也买了其中两本,你说得太对了,还有一点就是很多错误。 4: 买书是为了入门,使用只能看datasheet.我一本也没买,但都有,赠送的。买书是为了入门,使用只能看datasheet. 5: 1第一本尽管是翻译的但与后续的书相比还是最好的,现在很多书不是翻译datasheet就是翻译user manual,不是骗钱就是为了评教授随便花钱出书贻害他人,中国的某些体制实在是害了国家又害了百姓 6: 我与楼上兄弟有同感!原于我的英文水平不高,即使这样的书不好,我也要硬着头皮买回来看。 7: 翻译对了也成啊,可是错误太多,简直就是误导!!mega8那本. 8: 我的英文也不好,也不得不买了两本,就是前以提到的两本唉………………………………!! 9: 同意依山观点有时我看这些资料,是中英方对照着看的,本人英文水平不高,喜欢看翻译资料,但有时读起来确实费力,还要再看英文原版。 10: 我看《AVR单片机C语言开发入门指导》    我已经大致看了《AVR单片机C语言开发入门指导》一遍,
的确感觉内容有点杂。最讨厌的是:icc 里还没有说清楚,就急忙去搬
IAR和 CV,很大的浪费读者的时间和精力!
    另为,深度不够。由于对c51很熟了,看它很轻松,建议不用买 11: 你最好讲具体一点,到底多少个错误,讲出来给你稿费也行!你最好讲具体一点,到底多少个错误,讲出来给你稿费也行!
如你专业水平(搞过AVR开发应用)及外语水平很好,可合作编书!在有名气的出版社出版。 12: to: airwill《AVR单片机C语言开发入门指导》写作的目的是让读者能够入门,因此您有足够的水平,看该书当然用处不大。
将更深的内容及复杂的应用实例放到《AVR单片机C语言开发应用与提高》及《AVR单片机C语言开发应用实例--Tcp/IP》二本书中讲述。

您觉得icc中还有哪些内容需要讲清楚而《AVR单片机C语言开发入门指导》一书没有说清楚,或者有哪些内容应该让初学者掌握的而书中没有说的,请跟本贴或者给我发邮件,告诉我,我可以将这些内容补充到《高级篇》中,或者将其贴到本BBS和我的网站中,如何? 13: FJMCU其实fjmcu老兄是个十足的DX了。
不过那本AVR-C入门的书,的确错误不少,多数是印刷的错误吧:)
还有感觉对ICC的编译器和语法说的没够详细,简单的说,就是你应该把这个编译器说的个通透。才对得起这40大元。
另外,书中用到的一些双龙的自己的函数库,应该先对函数库的函数进行简单的说明啊,一个INCLUDE了,接着就用了,看的人一头冒水。
既然说到了AVR的ISP能力,应该公布一下ISP线的做法(应该还有不少人还没知道如何做的:)既然介绍了这么多个编译器,为什么不介绍一下现时流行的ISP软件的用法呢?反而是放上了双龙的广告,在不知道大家感觉是如何的,本人就是对书中放广告很是反感了。

不过嘛,这本书总体也是不错的,字体大小还算可以(有的书字体牛大,简直是骗钱),而且对其他编译器也有说明这是我最喜欢的一点,事实上,每个编译器都有自己的优点,能让读者好好的理解他们和进行对比是必要的。书中某些C语言的技巧应用也很不错,够经典,但写的太乱,当我想再翻查的时候已经找不到了:( 14: 想说一点,ISP下载线双龙己在一本书中公开,不必每本书都写了。想说一点,ISP下载线双龙己在一本书中公开,不必每本书都写了。 15: to: 电子白菜谢谢您的指教。

正在对AVR C一书进行重新校对,希望在下一版中的错误会少很多吧。

关于双龙的库函数,在3.6.12一节中有介绍,并且双龙不肯给出库函数的源代码,我尽量将收集到的源代码也放到书中,这些增补库函数差不多提供了一半的源代码,并且在3.6.12中指出了源代码的位置。

ISP下载线,在网上到处都有,在本BBS中就不止贴过一次(不过不是我贴的),而且我认为AVR C一书重点是放在C语言上面,对于硬件的介绍很少,所以书中没有给出IPS下载线。

双龙对我写该书的支持很大,而且书中的源程序是针对SLAVR,部分是针对ATmega8开发板,所以在附录中放上这二种器件的原理图,也有利于读者结全硬件分析源代码。在以后的二本书中将会注意广告这一问题的。

以后的二本书在写时会更加注意条理性。

我十月份后事情不多,那时再ICC编译器和语法等方面的内容进行补充,贴到本BBS中。

16: ICCAVR增补库的函数说明1、在使用例子程序之前,将库文件libslAVR.a拷贝到ICCAVR安装目录下的库文件目录中
      即...\LIB\目录。将头文件slAVR.h拷贝到头文件目录即...\include\目录。
  2、如果想使用库文件中的函数,那么设置如下:
        1)、在文件中应使用 “#include <slAVR.h>”包含slAVR.h头文件。
        2)、在工程选项中的Additional LIB一栏中填入"slAVR",使用附加的libslAVR.a
            库文件。(注意:引号不需要输入)
  3、libslAVR.a库中包含的函数清单如下:       
     1)、void write_lcd(unsigned char data,unsigned char data_type);
         写命令或数据到LCD模块,可直接使用控制命令对LCD模块操作  
           data:命令或数据字节 ,data_type:0表示命令,1表示数据   
     2)、unsigned char read_lcd(unsigned char data_type);
         从LCD模块中读取数据或地址
          data_type:0表示读取地址,1表示读取数据   
     3)、void lcd_init(void);
         LCD模块初始化
     4)、void lcd_putc(unsigned char c) ;
         单字符输出函数
     5)、void lcd_puts(unsigned char *s);
         字符串输出函数
     6)、void lcd_clear(void);
         清除LCD显示函数
     7)、void lcd_write(unsigned char adder,unsigned char data);
         写数据到指定DDRAM/CGRAM位置       
     8)、void lcd_write_data(unsigned char data);
         写数据到DDRAM当前位置
     9)、unsigned char lcd_read(unsigned char adder);
     从指定DDRAM/CGRAM位置读取数据  
     10)、void lcd_gotoxy(unsigned char x,unsigned char y);
          将光标转移到DDRAM指定位置处, x:0~39,y:0~1
     11)、void lcd_shift(unsigned char n,unsigned char p);     
          LCD字符移位函数,n:移动的次数,p:移动方向,'l'或'L'表示左移,'r'或'R'表示右移    
     12)、void delay_1ms(void);
     13)、void delay_ms(unsigned int n);
          延时函数(mS),对应晶振频率为8MHZ  
     14)、unsigned char sCAN_key(void);
          键盘扫描函数,注意本函数不作按键释放检查                     
          返回值:1、没有键按下返回0x7f
                      2、如果shift按下,返回值最高位为1
                      3、其余键按下时,返回键名对应数值
     15)、unsigned char keypad(void);  
          键盘扫描函数,注意本函数作按键释放检查                     
          返回值:1、没有键按下返回0x7f
                      2、如果shift按下,返回值最高位为1
                      3、其余键按下时,返回键名对应数值
     16)、void Start(void);
              I2C总线启动
     17)、void Stop(void);
              I2C总线停止
     18)、void Ack(void);
              发送应答信号
     19)、void NoAck(void);
              发送非应答信号
     20)、unsigned char TestAck(void);
              测试应签信号,有应答信号返回0,无应答信号返回01。
     21)、void Write8Bit(unsigned char input);
              写一个字节数据到I2C总路线
     22)、unsigned char Read8Bit(void);
              从I2C总线读取一个字节数据
     23)、void Write24c02(unsigned char *Wdata,unsigned char RomAddress,unsigned char number);
              对串行EEPROM存贮器AT24C02采用页写模式连续写多个字节
              参数说明:unsigned char *Wdata ,指向源数据块首地址的指针
                        unsigned char RomAddress,EEPROM中的目标地址
                        unsigned char number,连续写的字节数
     24)、void Read24c02(unsigned char *RamAddress,unsigned char RomAddress,unsigned char bytes);
              对串行EEPROM存贮器AT24C02连续读多个字节
              参数说明:unsigned char *RamAddress,指向存放读出数据的变量的指针
                        unsigned char RomAddress,EEPROM中的目标地址
                        unsigned char bytes,连续读的字节数
      25)、void delay_us(int time);
           微秒延时程序
      26)、unsigned char ds1820_ack(void);
           检查DS1820是否存在:
       如果DS1820不存在返回1,否则返回0
      27)、void ds1820_write(unsigned char cmd);
           写ROM或存贮器命令到DS1820
      28)、unsigned char ds1820_read(void);
           从DS1820读1字节数据
      29)、unsigned char crccheck(unsigned char *p,unsigned char len);
           CRC校验
  4、例子说明
      1)、LED  ICCAVR中的典型例子,可作为ICCAVR的起步
      2)、interrupt 使用定时器1溢出中断的例子
      3)、LCD  SL-AVR实验仪中的2*16位LCD模块的使用例子  
      4)、display SL-AVR实验仪中六路LED进行动态显示的例子程序
      5)、keyboard 包含三个例子程序 keyboard.c、keyboard1.c和keyboard2.c
          keyboard.c :使用keypad函数,观察其对LED显示有何影响
          keyboard1.c:使用sCAN_key函数,观察其对LED显示有何影响
          keyboard2.c:使用keypad函数,观察其对LCD显示有何影响
      6)、music 电脑音乐演示程序----播放“卡秋莎”音乐
      7)、clock 电脑时钟程序----24小时制时钟
      8)、cymometer 单量程频率计,测量范围0-999999 HZ
      9)、I2C  AVR单片机使用I2C总线的例子,AVR工作于I2C的主节点模式,包含两个例子
          I2C.c 以单字节模式访问I2C总路线器件AT24C02的例子程序,从中可以学习I2C总线的工作过程
          AT24C02.c 调用库函数对AT24C02进行读写,可以连续多字节读写。
      10)、Cycle.c 为ICP引脚信号周期测量程序
           Cycle_1.c为ICP引脚信号占空比测量程序
      11)、DTMF  利用T1 的PWM方式产生双音频信号
      12)、1WRITE 以DS1820为例介绍单总线器件的应用
      13)、UART为RS232串行通信例子程序,利用ICCAVR的终端调试窗口和PC机键盘,可以将你从PC键盘输
           入的字母、数字或汉字转送到ICCAVR的终端调试窗口。
      14)、pc_8515:PC键盘演示程序,适用于SL-AVR+,SL-AVRAD需另外跳线。
      15)、pc_8535:PC键盘演示程序,适用于SL-AVRAD,SL-AVR+需另外跳线。
      16)、music_8535:音乐演示程序,适用于SL-AVRAD,SL-AVR+使用原SL-AVR音乐演示程序。
      17)、AD_8535_LCD:AD转换演示程序,用2*16字符LCD显示,适用于SL-AVRAD。
      18)、AD_8535_LED:AD转换演示程序,用6位LED显示,适用于SL-AVRAD。
      注意:a、以上程序中部分例子程序使用了SL-AVR专用库libslAVR.a,其中有关函数原型说明参考
               头文件slAVR.h。
            b、上述例子程序的硬件接线如果没有特殊说明,采用双龙电子出品的SL-AVR、SL-AVR+、
           SL-AVRAD实验仪的出厂默认跳线。 17: 大侠们,帮我解决一下那个问题啊如题 18: MEGA8书里面所有例程都是#include <io8515.h>的,STUPID ! 19: 好后悔,我刚买

专家
2022-08-21 17:42:56     打赏
3楼

感谢分享


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]