历史上的今天
返回首页

历史上的今天

今天是:2025年02月09日(星期日)

正在发生

2020年02月09日 | MSP430学习笔记1---点亮第一个LED

2020-02-09 来源:eefocus

主程序


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


板子型号:MP430 Launch Pad


主芯片:MSP430G2553


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


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


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


 1 #include 

 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。


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


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

推荐阅读

史海拾趣

Andersen Laboratories Inc公司的发展小趣事

在不断追求技术创新和市场扩张的过程中,AnalogicTech始终坚持多元化发展战略。公司不仅在LED背光液晶电视市场取得了显著成绩,还积极拓展其他领域,如智能手机、平板电脑等消费电子产品市场。通过不断推出创新产品和解决方案,AnalogicTech成功实现了市场的多元化发展,为公司的长期稳定发展奠定了坚实基础。

这五个故事展示了AnalogicTech公司在电子行业中发展起来的关键阶段和重要举措。凭借其卓越的技术创新、全球化的运营策略、高效的物流配送体系以及市场扩张与多元化战略的推进,AnalogicTech成功地在竞争激烈的电子行业中脱颖而出,成为了一家备受瞩目的企业。

Connector City公司的发展小趣事

Connector City公司成立于XX世纪初,当时电子连接器市场正处于快速发展的阶段。作为初创企业,Connector City面临着资金短缺、技术落后和市场竞争激烈的挑战。然而,公司创始人凭借对行业的深刻理解和敏锐的市场洞察力,成功捕捉到了市场机遇。他们积极寻求投资,加强与科研机构的合作,不断提升产品性能和质量。同时,公司还注重市场营销和品牌建设,通过参加行业展会、举办产品发布会等方式,提高了品牌知名度和市场占有率。

泽耀科技(Ashining)公司的发展小趣事

在国内市场取得一定成绩后,泽耀科技(Ashining)开始积极拓展国际市场。公司参加了多个国际电子展会,与国际知名企业建立了合作关系,成功将产品打入国际市场。同时,泽耀科技还积极寻求与国际先进技术的交流与合作,不断提升自身的技术水平和产品质量。

BULGIN公司的发展小趣事

BULGIN公司的历史可以追溯到1923年,当时A.F.Bulgin先生和他的同伴在英国创立了A.F.Bulgin有限公司。公司专注于无线电电子零件的制造与生产,凭借产品的优质口碑,BULGIN的品牌逐渐广为人知。随着订单的不断增加,公司迅速成长,并在二战前已经拥有了当时最先进的现代化大规模生产线。

ALLIED [Allied Electronics]公司的发展小趣事

BULGIN公司的历史可以追溯到1923年,当时A.F.Bulgin先生和他的同伴在英国创立了A.F.Bulgin有限公司。公司专注于无线电电子零件的制造与生产,凭借产品的优质口碑,BULGIN的品牌逐渐广为人知。随着订单的不断增加,公司迅速成长,并在二战前已经拥有了当时最先进的现代化大规模生产线。

BETA Transformer Technology Corp公司的发展小趣事

随着全球环保意识的不断提高,BETA Transformer Technology Corp公司积极响应国家绿色发展的号召,将环保理念贯穿于产品研发、生产和销售的全过程。公司推出了一系列节能环保的变压器产品,深受客户好评。同时,BETA公司还加强了对生产废弃物的处理和回收利用,实现了资源的循环利用和减少环境污染。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实基础。

问答坊 | AI 解惑

有没有电子表的专用芯片

有没有电子表的专用芯片? 应该是那种非常便宜的裸片MCU. 能否推荐一个型号?…

查看全部问答>

vs.net2005+wince5.0,调用SetWindowPos(),控件无法显示

    在vs.net2005+wince5.0下,MFC编程,在OnInitDialog()函数中调用SetWindowPos(),具体参数如下:     wnd->SetWindowPos(&wndTop,remote_wnd_x-4,remote_wnd_y-4,IMAGE_WIDTH+9,IMAGE_HEIGHT+9,SWP_SHOWWINDOW | SWP_DRAWFR ...…

查看全部问答>

诡异的12864 proteus仿真

废话先不多说,先上全部程序: 打点函数,用proteus仿真结果让我郁闷,都不知道错在哪。 #include #define DataPort P2                  //数据端口 sbit E       ...…

查看全部问答>

Oops SIGSEGV错误,请教一下如何分析定位

Oops SIGSEGV: 0000 [#1] Modules linked in: embxmailbox(P) stgfb_core(P) led st7105_ks nandbm embxloopback(P) embxshell(P) mme_host(P) embxshm(P) stapi_ioctl(P) stapi_core(P) Pid : 5705, Comm:        &nbs ...…

查看全部问答>

错误:tExcTask :mempartfree,invalid block ,它的出现竟然与双网卡ifAddrSet(),有关??

大家好。 我最近用82559er双网卡,有人说一开始要 ipAttach(),ifMaskSet(),ifAddrset(),分别为两个网卡进行配置, 也有人说,不能同时配置两个。 要命的是,我在数个月之前 ,用前一种方法,网络的各种功能 没有问题。 可是 最近用建了个工程, ...…

查看全部问答>

关于QueryPerformanceCounter的问题

我在wince5.0里来了一个中断就执行下面的语句:  QueryPerformanceCounter(&uCurrentTick); RETAILMSG(IR_DEBUG_MSG,(TEXT(\"The uCurrentTick Time is:%x\\r\\n\"),uCurrentTick.QuadPart)); 为什么每次输出的值都是一样的啊?请各位好汉指点 ...…

查看全部问答>

LM3S3739JTAG口锁定问题,怎么解锁?

LM3S3739JTAG口锁定问题,试了网上能找到的方法都不行,我只有JLINK V8 ,SEGGER是V4.15W的。我换了一个新片子就能看到器件了,一个是将锁定的解锁,还有就是怎么设置使其不锁定?…

查看全部问答>

曾经看到一个文章说可以修改1114的核心频率

我想自己修改一下使1114跑到72M,但是没有找到配置寄存器,哪个大侠能指点一下?…

查看全部问答>

lm3s Boot Loader说明

第三章 Boot Loader现今,嵌入式系统越来越受到人们的重视。随着系统复杂程度的提高,小型化和网络化也成为嵌入式系统发展的必然趋势。如何利用现成的通信网络,安全、快捷的对各个节点单片机进行在线软件升级(ISP),成为了嵌入式系统发展的一项 ...…

查看全部问答>

随便聊聊

刚刚挑战了低级考试,获得60分,刚好及格,呵呵。。。…

查看全部问答>