原创 ATmega128的学习-1

2008-5-19 12:02 2273 1 1 分类: MCU/ 嵌入式

        过了这么长时间,才开始我的第三片博文。为了开篇我留下的主题,我忙活了一个多月,为了实现三种精度较高的DAC方案,我不得不学习mega128单片机,前两天刚刚把片子调通。有些学习的心得写下来,抛砖引玉,希望像国建和小凡这样的牛人多给予指导。


        写个题外话,买书还是很有必要的,最终我还是在当当上买了一本AVR的书,是马潮写的,我觉得蛮实用,从硬件的最基本设计,仿真器和开发环境的选择,到程序设计都受益匪浅。


        每次在开始了解一个新的单片机时候,我总会相当我的单片机老师曾经告诉我的学习方法。首先,了解它的引脚分配,内部的基本结构,各个功能模块;其次,地址的寻址方式和指令集;最后,中断的分配。这次学这款单片机,我也是按照他的方法进行的。感觉比较有条理。当然我也附加了一些零碎的内容,比如开发环境和仿真器的了解,以及搭建一个最小系统,针对AVR单片机还有一个特别的地方,那就是他的熔丝位。当然,我不可能把这款单片机的所有都展示出来,我也不愿意陷入到复杂的细节当中,因为书和芯片文档讲的远比我要详细的多。我只想写一下我学习的思路,如何更快的利用好这些资源。


        前面说了太多的废话,开始进入正题。我最开始看的是芯片的datasheet。直接看它的目录,他有哪些突出的功能?首先 I/O功能,定时计数(定时计数分8位和16位,因为我要用到它的PWM功能,所以重点关注);接下来 串行通讯口,串口,SPI,TWI(I2C);最后,模拟比较输入(可以用于搭建 Dual-slop积分型AD转换,精度比较高,但速度较慢),AD转换(只有10位,但可以通过过采样技术提高精度)。我看了些datasheet的内容,总结点规律,他们介绍一个模块的时候,首先介绍的是 该模块在硬件层面上又分成哪些功能模块(每个引脚几乎都具备复用功能),每一个模块的硬件实现,这些功能模块如何控制,最后介绍相关的寄存器。我一般是大致了解一下这个功能模块的作用,然后直接翻到后面看他的寄存器,把寄存器抄在本子上,注明具体的功用(控制寄存器和数据寄存器区分开)和地址。最后再回过头去看如何通过写寄存器来控制该功能模块。大致看完datasheet后,就开始翻书,有代码样例总归可以比较直观看如何操作一个功能模块。最后在本子上记录些具体的操作流程,比如先设定哪个寄存器,再设定哪个寄存器,复杂一点如何控制中断等等。当然我觉得最开始的一遍尽量以最快的速度浏览他的全貌然后在具体应用中开始第二遍细致的学习。


        好了,今天就说这么多,未完待续!


        给出我看的书名和经常访问的AVR网站


        《AVR单片机嵌入式系统原理与应用》


        我们的AVR:http://www.ouravr.com

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
1
关闭 站长推荐上一条 /1 下一条