打印

转: MSP430学习笔记(一)

[复制链接]
2997|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
清晨咖啡|  楼主 | 2012-1-28 21:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
刚刚算是学了点STM32,由于项目开发的需要,又要学MSP430。做技术的真是命苦啊,,,,没有办法,在这个多MCU的时代,客户也多了很多选择。再说了,430实在是一个很有特色的芯片,某些领域真没有什么取代的,PIC不行,STM32也不行。    这次学习,采取点特殊的方法,跟着买来的板子上的例程,根据自己的理解,不懂的就上网搜,看一看以前学过51,PIC,STM32的知识到底起帮助作用还是反作用。不过,这法子是否行得通还难说得很。这里面用笔记记下学习过程,其中可能会有很多错误的地方,然后在下一篇再又纠正,体现了哲学关于学习的“螺旋式上升”的理论,但看的人可千万小心了,不要以为写出来就是对的,我可不负这个责任^_^。      闲言少叙,下面正式开始。
----------------------------------------------------------------

MSP430 学习笔记
一、开发环境建立
1.硬件 CPU:MSP430F149 仿真器:MSP430-FET
2.软件:IAR
3.实验板 LT-1C
二、第一个练习

1.生成新工作空间
File->New->WorkSpace
出现一个新的工作空间,没有要求保存,这和我用的PCB软件AD9的WorkSpace工作空间的概念一样。
这时用File->Save WorkSpace
没有任何变化.
----------------------------------------------------------------------------------------------------------------
       Project->Creat New Project

自动生成如下一个文件:

  • #include "io430.h"
  • int main( void ){  // Stop watchdog timer to prevent time out reset  WDTCTL = WDTPW + WDTHOLD;
  •   return 0;}

复制代码


这时再用:
File->Save WorkSpace
保存,则要求保存为一个eww文件。

2.工程设置
  单击Project->Option打开设置对话框

生成带调试的文件

生成TXT格式输出文件
如果在进入调试时看到下面的提示:

说明选错了生成方式


设置调试方式,选择Debugger,选择FET Debug


再次单击左侧框中的FET Debugger,在右侧对话框中单击Connect,选择Elprotronic USB-FPA

相关帖子

沙发
清晨咖啡|  楼主 | 2012-1-28 21:41 | 只看该作者
三、讨论2个知识点
LT-1C给出的例子程序如下所示:

  • /***************************************************程序功能:控制8个LED闪烁,用于测试下载功能是否正常---------------------------------------------------测试说明:观察LED闪烁***************************************************/#include  #include  "BoardConfig.h"
  • /****************主函数****************/void main(void){     WDTCTL = WDTPW + WDTHOLD;   //关闭看门狗    BoardConfig(0xf0);                    //关闭数码管和电平转换,打开流水灯    /*这两行不必理会*/    CCTL0 = CCIE;                   //使能CCR0中断    CCR0 = 2047;                    //设定周期0.5S                   TACTL = TASSEL_1 + ID_3 + MC_1; //定时器A的时钟源选择ACLK,增计数模式    P2DIR = 0xff;                   //设置P2口方向为输出    P2OUT = 0xff;    _EINT();                        //使能全局中断LPM3;                           //CPU进入LPM3模式/*这里使用了LPM3直接进入LPM3模式*/}

复制代码


1.    LPM3
关于LPM3有很多介绍,不过我最能理解的是这样一句:MSP430的低功耗事件驱动模式。
MSP430系列单片机的各个模块都可以独立运行,如定时器、输入/输出端口、A/D转换、看门狗、液晶显示器等都可以在CPU休眠的状态下独立工作。若需要主CPU工作,任何一个模块都可以通过中断唤醒CPU,从而使系统以最低功耗运行。
让CPU工作于突发状态可以充分利用CPU的低功耗性能。通常,使用软件将CPU设定到某一低功耗模式,在需要时使用中断将CPU从休眠状态中唤醒,完成工作后又可以进入相应的休眠状态。如:让CPU工作在LPM3状态,通过中断事件转换到AM活动模式,根据运行需要,又可以从AM状态进入相应的低功耗模式:LPM0/LPM3或LPM4。
于是想要查找LPM3这个符号表示什么,习惯性地按下F12(keil中的查找方式),发现IAR和keil居然一样。找到msp430x14x.h文件中有两处,其中一处是:

而另一处是:

显然,应该是执行的这一处指令,,,不过,两个符号会冲突吗?

  • /*******************************************函数名称:Timer_A功    能:定时器A的中断服务函数参    数:无返回值  :无********************************************//*#pragma vector = TIMERA0_VECTOR__interrupt void Timer_A (void){     P2OUT ^= 0xff;                  //P2口输出取反}*/

复制代码


2.TMR A
TMRA是一个16位的定时器/计数器,有3个"捕获/比较寄存器",定时器(TA)与"捕获/比较寄存器"(CCRx)工作是相对独立的.
其中CCR0是捕获、比较通道0,我关心为何CCR0设定为2047就是定时0.5s?
先看这一行:
TACTL = TASSEL_1 + ID_3 + MC_1; //定时器A的时钟源选择ACLK,增计数模式


而查找符号TASSEL_1则有这样的定义:

查找ID_3则得到下面的定义:
#define ID_3                (3*0x40u)  /* Timer A input divider: 3 - /8 */
查找MC_1得到下面的定义:
#define MC_1                (1*0x10u)  /* Timer A mode control: 1 - Up to CCR0 */
    这个是关键。它是定义Timer A的模式控制增量到CCR0。也就是计数器每增加到CCR0中的值就从头开始了。
    所以每计2048次就是一次循环。至于2048次为何是0.5s,那肯定和时钟有关了,但这个暂且放一放吧。

使用特权

评论回复
板凳
teabottle| | 2012-1-29 14:45 | 只看该作者
复制的不全

使用特权

评论回复
地板
wangjinlili| | 2012-1-29 15:47 | 只看该作者
学习一下

使用特权

评论回复
5
meishizhaoshi| | 2012-1-29 16:03 | 只看该作者
looklook

使用特权

评论回复
6
u880| | 2012-1-29 17:07 | 只看该作者
共同学习 共同进步

使用特权

评论回复
7
huigoushang| | 2012-1-29 17:41 | 只看该作者
写的很好啊

使用特权

评论回复
8
老电工1979| | 2012-1-29 20:21 | 只看该作者
楼主复制的不全啊!!!可以整个附件上来啊

使用特权

评论回复
9
G21372| | 2012-1-29 22:04 | 只看该作者
挺好的 很有用

使用特权

评论回复
10
浏览器123| | 2012-1-29 22:14 | 只看该作者
值得看一下

使用特权

评论回复
11
张鑫鑫鑫| | 2012-1-29 22:24 | 只看该作者
还有二三四吗楼主

使用特权

评论回复
12
一品人生| | 2012-1-29 22:37 | 只看该作者
希望楼主把整个文档都穿上来吧

使用特权

评论回复
13
yangguangaisha| | 2012-1-29 22:53 | 只看该作者
我也觉得这样看好麻烦啊

使用特权

评论回复
14
锋康123| | 2012-1-29 23:06 | 只看该作者
很实用 不错

使用特权

评论回复
15
gexingyouxian| | 2012-1-29 23:12 | 只看该作者
好东西 就是看着费劲

使用特权

评论回复
16
aass1| | 2012-2-2 16:38 | 只看该作者
下文呢 哪去了

使用特权

评论回复
17
aass1| | 2012-2-2 16:38 | 只看该作者
等待中

使用特权

评论回复
18
jamie-ma| | 2012-2-2 16:45 | 只看该作者
支持一下,呵呵

使用特权

评论回复
19
yeluozhiqiu| | 2012-2-18 13:22 | 只看该作者
等待中

使用特权

评论回复
20
wyjie| | 2012-2-19 10:37 | 只看该作者
还有二三四吗楼主

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

149

帖子

1

粉丝