本帖最后由 永远的不知 于 2011-11-24 10:44 编辑
非常新手刚接触MSP430单片机时,不管是从资料上或书本上看到的目录列表中都会有或多或少感到有点眼花缭乱,模块之多不知该从何学起?从理想上说,每个模块的存在都会有他的所在价值;但对于非常新手来说并非马上就用或马上要非学不可。
作为非常新手,首先看我们是否准备好以下几样硬件:计算机(带有并口)1台,MSP430FET仿真器1套,MSP430开发实验板1套,和一些MSP430教程或电子教程资料等。
在翻开MSP430的资料或书本教程目录时,都会看到好多模块目录,那么我们是不是都要全学呢?显然理想地回答应该“是”。但实际中,对于我们新手来说暂时是不必的。最起码应该学些最基础和通用的模块先,以下是较常用的基础模块。我们不必把所有的模块都掌握,但可以了解一些基础参数及基本原理,当撑握了这些基础参数及基本原理之后,再结合一些模块单元的例程进行综合地分析和理解。在这一学习过程中我们会不断地将这些参数及原理存储在脑海中。当我们有一定的基础后,就会发不断地现又有新疑问;那么这时候这些疑问就会促使自己去寻找答案。同时会促使我们不断的翻书本和资料,也可能促使我们在开发板上进行疑问的验证。
在上面的过程中,就是熟悉和撑握这些模块的过程。在这个“学”和“练”的过程中很多都是靠个人的。当我们请教前辈时,人家只会告诉自己一些参考思路或方向;往往里面的内容都要自己亲身去验证的。学习当中会往往存在着很“乐事”和“苦事”,相信很多成功的人们都会有这样的体会。
【WDT看门狗定时器】
很有趣,相信新手们会看到很例程中开头都有“WDTCTL = WDTPW + WDTHOLD;”语句。这是CUP执行关闭定时器的意思。在刚入门阶段,我们没必要关心这个,可以跳过这章节,只要大概地知道他的作用就好了。看门狗定时器一般是用于防止程序失效而存在的,一般是用于完整的程序中使用。主程序中可不断地清除看门狗定时器的计数值,以防定时器的值自动计满后使CPU复位而重新开始工作。当程序发生错误时,无**常清除看门狗的定时值时,则看门狗定时器计数溢出而产生CPU复位。对于看门狗定时器的使用,应该在应用进阶阶段中学习。
【IO模块】
对于IO模块可分为入门必学与学习进阶两部分,可以不必同一时段内进行理解。
入门必学:
[1]初学者必需了解几个常用寄存器使用如P1OUT,P1IN,P1DIR,P1SEL寄存器。
[2]理解MSP430 IO口常用编程语法,这些都可以查看参考例程。
[3]结合书本介绍和个人理解,然后在开发板上进行实验。例如比如LED、响声之类的初级实验。
学习进阶:
对于IO模块的进阶主要是了解如何使用IO中断,和IO中断相关寄存器的使用。如果不太必要,可以跳过IO中断的使用,而是去学习其他章节的基础部分;当其他章节基础学习到一定程序时回过头再来学习这部分。另外,我们需要搞清楚IO模块在什么时候为高阻状态?高阻状态时的漏电流为多少?IO驱动电流能力如何?等等一些常关注的参数时,我们都需要养成主动查看器件手册的习惯。
【时基模块】
时基模块是提供整个单片机中各模块的时钟发生源,初学者若要使用到片中某模块时几乎都要使用不同的时钟。所以这章节是非常强调地要去认真理解的。
[1]必须理解DCO,SMCLK,MCLK,ACLK这4个时钟信号是由哪部分产生的。
[2]DCO,SMCLK,MCLK,ACLK各个时钟有什么优点和点。
[3]4个时钟信号中,每个时钟的通常频率范围是多少。
[4]常规的时基控制寄存器设置和时钟如何从引脚输出等等。
最后,学习进阶阶段需要理解在不同低功耗模块下,哪些时钟源信号还在活动,哪些已关闭。
【TimaA模块】
入门必学:
[1]初学者需要搞清TimerA的三个不同工作模式中TA、CCR1、CCR2与CCR0之间的关系。
[2]搞清楚TA、CCR1、CCR2与CCR0之间的中断向量关系。
[3]综合上面的理解,我们可以结合TimerA的例程来进行相关验证,只有通过亲自的操作才能有效地记住。
学习进阶:
如利用TimerA实现PWM信号输出、利用捕获/比较功能实现捕获信号等等。
【结束语】
只要经过上述四个单元有条理地认真学习的话,我们对MSP430单片机已有一定感性认识了。有了这些基础,接下要继续学习其他相关的模块应用也不难了。那么剩下的一些模块我们可以按需而用,按需而学。
但前提的就是需要熟悉几个常用模块基础应用,以使用量最多的14x系列为例,初学者入门必学有IO模块、时基模块、定时器模块等,以后可继续强化学习如ADC12模数转换、UART串行异步通讯模块、比较器A模块等等。 |