MSP430学习笔记1---点亮第一个LED

目录

主程序

第一句:DTCTL=WDTPW+WDTHOLD

第二句:P1DIR  |= 0x01

第三句:volatile unsigned int i

第四句:P1OUT ^= 0x01; 

 

主程序


 

今天无意发现抽屉里有个MP430的板子,拿来研究一下。

板子型号:MP430 Launch Pad

主芯片:MSP430G2553

Launch上网查了下,有开展的意思,Pad是板子的意思,和在一起就是初学者用的板子了,正好适合我这样的新手学习呢。嘎嘎。

首先安装CSS5.3,网上找了破解文件,破解了。

通过官网,建立了第一个程序,原程序找不到了,不过和下面的类似:

 1 #include  <msp430x14x.h>
 2 
 3 void main(void)
 4 {
 5   WDTCTL = WDTPW + WDTHOLD;                 // Stop watchdog timer 
 6   P1DIR |= 0x01;                            // Set P1.0 to output direction
 7 
 8   for (;;)
 9   {
10     volatile unsigned int i;
11 
12     P1OUT ^= 0x01;                          // Toggle P1.0 using exclusive-OR
13 
14     i = 50000;                              // Delay
15     do (i--);
16     while (i != 0);
17   }

一句一句学习下:

 

第1句:DTCTL=WDTPW+WDTHOLD


 

后面解释是stop watchdog Timer(停止看门狗计时器),那WDTCTL的前三个字母WDT就是watchdog Timer(看门狗定时器的缩写了)。后面的字母啥意思,打开头文件msp430x14x.h看一下,搜索WDTCTL找到如下语句:

SFR_16BIT(WDTCTL);                            /* Watchdog Timer Control */

后面说的很明白,WDTCTL就是Watchdog Timer Control 的缩写。新的问题来了,SFR什么意思,百度说是Special Function Register(特殊功能寄存器的意思)。哦,那这句话就是定义了一个16bit的特殊功能寄存器。可以理解为从SFR这个大箱子里划出一小块(16BIT)给一个叫WDTCTL的人用。

同样去头文件中找其他两个词语:找到的程序如下:

#define WDTHOLD                (0x0080)

#define WDTPW                  (0x5A00)

 百度找到句话: “这个指令设置密码(WDTPW)和停止位定时器(WDTHOLD),所有的WatchDog配置都需要在WDTPW的辅助下完成。”有了这句话就明白了剩下的了。

WDTCTL的结构如下图所示:

 

 

第2句:P1DIR  |= 0x01


 

P1DIR字面的意思是P1 direction(也就是P1的方向,input/output?)

|=是C语言中逻辑或的意思,表示有1变1。

P1DIR  |= 0x01 这句话后面的解释是Set P1.0 to output direction 把P1.0口设为输出口。那很明显了, 1表示output(向外给),0表示input(向里要),这也很形象,有才能给么,哈哈。

 

第三句:volatile unsigned int i;


第一个单词不认识,直接百度是不稳定的意思,百科这么说:推荐一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。

简单的理解,这个变量很重要,需要每次去看原版,不能看复印的,不然容易出错。

unsigned int无符号的整数,不多说

 

第四句:P1OUT ^= 0x01;                    


 

后面的翻译Toggle P1.0 using exclusive-OR:用一个互斥或(也就是异或)来切换P1.0。

 

至此,整个程序基本解释完毕了。

把这个程序拷进板子中,红灯就闪啦,闪啦,闪啦~~

posted @ 2013-12-08 16:40  I know you  阅读(1238)  评论(0编辑  收藏  举报