MSP430心得体会

发布者:科技先锋最新更新时间:2015-11-10 来源: eefocus关键字:MSP430  心得体会 手机看文章 扫描二维码
随时随地手机看文章
因DC的邀请写一个有关中断的东东,我也接触430不久只能以自己的心得体会更大家分享,若有纰漏恳请见谅。MSP430用户手册上有的中断介绍我就不赘述了,大家可以看User Guider.我讲的主要是书上没有的,或者是点的不透的。希望对大家有用。


1.中断嵌套,优先级
430总中断的控制位是状态寄存器内的GIE位(该位在SR寄存器内),该位在复位状态下,所有的可屏蔽中断都不会发生响应。可屏蔽中断又分为单中断源和多中断源的。单中断源的一般响应了中断服务程序中断标志位就自动清零,而多中断源的则要求查询某个寄存器后中断标志位才会清零。由于大多数人接触的第一款单片机通常是51,51单片机CPU在响应低优先级的中断程序过程中若有更高优先级的中断发生,单片机就会去执行高优先级,这个过程已经产生了中断嵌套。而430单片机则不同,如果在响应低优先级中断服务程序的时候,即使来了更高优先级的中断服务请求,430也会置之不理,直至低优先级中断服务程序执行完毕,才会去响应高优先级中断。这是因为430在响应中断程序的时候,总中断GIE是复位状态的,如果要产生类似51的中断嵌套,只能在中断函数内再次置位GIE位。

2.定时器TA
TimerA有2个中断向量。TIMERA0,TIMERA1
TIMERA0只针对CCR0的计数溢出
TIMERA1再查询TAIV后可知道是CCR1,还是CCR2,亦或TAIFG引起的,至于TAIFG是什么情况下置位的,则要看TA工作的模式
具体看用户手册。还有一点TA本身有PWM输出功能,无须借用中断功能。在这个问题上经常出现应用弯路的是如何结合TA和AD实行定时采样的问题,很多人都是在TA中断里打开AD这样来做。这是不适宜的,因为430 的ADC10,ADC12(SD16不熟悉,没发言权)模块均有脉冲采样模式和扩展采样模式。只要选择AD是由TA触发采样,然后把TA设置成PWM输出模式,当然输出PWM波的都是特殊功能脚,但是在这里它是不需要输出的,所以引脚设置不必理会。值得关心的就是PWM的频率,也就是你AD的采样率

3.看门狗复位
看门狗有2种工作模式:定时器,看门狗
定时器工作模式下WDTIFG在响应中断服务程序有标志位自动复位,而在看门狗模式下,该标志位只能软件清零。但是怎么判断复位是由于WDT工作在看门狗模式下的定时溢出引起的,还是看门狗写密钥错误引起的呢?………………………………
答案是没有方法,至少我没见过有什么方法,也没见过周边的人有什么方法。若有人知道方法谢谢分享。
4.经常有人会问这个语句的MOV.B  #LPM0,0(SP)的作用。假如你在进入中断函数之前,430是在LPM0下待机,若要求执行完中断函数之后进入LPM3待机,在中断函数里写MOV.B  #LPM3,SR是无效的。因为在进入中断时430会把PC,SR压栈,( SR内保存着低功耗模式的设置)即使你写了MOV.B  #LPM3,SR,在退出中断出栈时SR会被重新设置成低功耗0,要达到这样的目的,只能更改堆栈内SR的设置:MOV.B  #LPM0,0(SP)。

5中断向量:
430的中断向量是FFE0H—FFFFH,一共32个字节也就是FLASH的最后一段,430的FLASH有大有小,但是最后地址肯定是FFFFH(大FLASH超过64K的除外)所以它们的起始地址是不一样的,而一般IAR默认编译都是把程序放在FLASH开始的位置(不包括信息段)。
有个值得弄清楚的问题是:什么是中断向量?中断向量实际就是保存中断函数入口地址的存储单元空间。就像FFFEH+FFFFH这2个字节是复位中断向量,那么它存储的就是主函数在FLASH内的起始地址,假如主函数保存在以0x1100为起始地址的FLASH块内,那么你会发现FFFFH 内保存的是0x11, FFFE内保存的是0x00.其他什么TimerA,ADC12,所有的都一样。只是你每次写的程序长短不一,中断函数放的位置不一样。IAR编译器都会给你定好,然后在你用JTAG烧写程序的时候,把这个地址,烧写到相应的中断向量。因为中断函数所处地址可以由用户自定义,也可以让IAR自动编译,所以这个地址除了源代码开发人员知道,其他人是不知道的,BSL就是应用这32个字节的中断向量内的内容的特殊性设置的密码。但是有几个东西在430是不变的,就是触发中断的条件满足后,它到哪个地方去寻址中断服务函数的入口地址,是TI 在做430时就固化好,定死的。比方说上电复位的时候,它知道去FFFE,FFFF单元找地址,而不去FFE0,FFE2找地址,这个映射关系是430固化不变的。可有的时候你就是需要改变“中断向量”,这怎么办?430FLASH程序自升级里有时就会碰到这个问题,方法是在430原来默认的中断向量表内做一个跳转操作,同样以上电复位为例:
ORG  0x2345
PowerReset: mov.w  &0xFCFE,PC
…………………………
…………………………
ORG  0xFFFE
DW   PowerReset

关键字:MSP430  心得体会 引用地址:MSP430心得体会

上一篇:MSP430X5XX的时钟系统与低功耗模式
下一篇:MSP430 5438时钟系统介绍

推荐阅读最新更新时间:2024-03-16 14:38

msp430单片机测量频率
/******************************************************* Author: Made by Xura Date: 2008.8.28 程序描述:利用Timer_A捕获脉冲宽度 利用MSP430单片机定时器A和捕获/比较功能模块结合使用,实现脉冲宽度的测量 程序用到了定时器A的CCI1A端口(MSP430F14X的P1.2引脚)作捕获外部输入 的脉冲电平跳变,start,end,两个个变量来计算脉冲宽度 *******************************************************/ #include msp430x14x.h #include l
[单片机]
基于MSP430 单片机的光电跟踪伺服系统的研究方案
  研究设计中利用光敏感器件对特定光波长范围的光信号敏感原理,将四象限光电位置探测器与MSP430系列单片机相结合,根据四象限光电探测器输出电压与光斑位置的线性关系,通过数字PID闭环控制输出电压调节单片机输出PWM 的占空比来实现精确稳定的搜寻和小范围跟踪目标。   0 引言   光电跟踪系统是以光电器件(主要是激光器和光电探测器)为基石,将光学技术、电子/微电子技术和精密机械技术等融为一体,形成具有特定跟踪功能的装置。   目前国内外较先进的光电跟踪系统多以激光测距仪、电视跟踪仪和红外跟踪仪三位一体为核心构成。采用机械方法实现跟踪系统控制起来还不太灵敏。对于一个光电追踪系统,一般通过目标识别、位置信号检测、位置信号处理、
[单片机]
基于<font color='red'>MSP430</font> 单片机的光电跟踪伺服系统的研究方案
MSP430停车位感应装置设计
硬件:MSP430f5529,光电传感器,数码管(共阴极) #include msp430f5529.h /*********************************************************************** 红外光电传感器输入信号到P2.0,模拟车的信号,当用手遮挡时输入高电平, 系统检测到上升沿,进入寄存器中断,P1.0灯亮,接着在寄存器中断中使能定时器的 捕获/比较寄存器(TA0CCTL0),定时器开始计时,数码管开始滚动数字,当把手挪开后, 传感器输入低电平,系统检测到下降沿,再次进入寄存器中断,P1.0取反,灯灭,接着 禁止定时器的捕获/比较寄存器(TA0CCTL0),定时
[单片机]
<font color='red'>MSP430</font>停车位感应装置设计
基于MSP430单片机的可调恒流源Proteus仿真程序设计
单片机源程序如下: /****************************************************************** * 实验说明: * 通设置系统主时钟(MCLK=8Mhz ) 、辅助时钟(ACLK=8Mhz )、 * 子系统时钟(SMCLK=8Mhz ) ******************************************************************/ #include MSP430x24x.h #include string.h #define uchar unsigned char #define uint unsigned int /
[单片机]
基于<font color='red'>MSP430</font>单片机的可调恒流源Proteus仿真程序设计
MSP430F5529火箭板 --->基于定时器A的LED灯闪烁实验
实验内容:上电点亮MSP430F5529 Launch Pad 上板载的红色LED,同时使用定时器让绿色LED闪烁 实验准备: 1、硬件:MSP430F5529 Launch Pad 2、软件:Code Composer Studio集成开发工具(CCS) 3、CCS的使用安装方法可参考 《Windows环境Code Composer Studio 下载和使用教程》 文章链接: link 4、本次实验使用到的物理层的分析可参考文章: link 一、定时器——Timer_A   在进入正题之前,我们先来了解一下MSP430F5529的定时器,本次实验我们使用Timer_A定时器,这里需要注意的是MSP430F5529一共有
[单片机]
<font color='red'>MSP430</font>F5529火箭板 --->基于定时器A的LED灯闪烁实验
MSP430F5529 工作时钟提升到25MHZ
使用 void main(void) { WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer initClock(); while(1); } #include sys.h void SetVcoreUp(unsigned int level) { // Open PMM registers for write PMMCTL0_H = PMMPW_H; // Set SVS/SVM high side new level SVSMHCTL = SVSHE + SVSHRVL0 * level + SVMHE + SVSMHRRL0 *
[单片机]
基于MSP430F169的光伏并网发电模拟装置
引言 目前,煤炭、石油等能源正走向枯竭,且环境污染问题也日益严重,新能源和可再生能源的利用已经成为世界各国的燃眉之急。作为一种无污染的可再生能源,太阳能越来越受到人们的青睐。太阳能光伏并网发电产业迅速发展对人们提出的可持续发展有重大的意义。本设计利用锁相环倍频、比较器过零触发和MSP430F169单片机DA产生与输入信号同频同相且幅值可控的正弦波,作为DA-AC电路的输入参考信号,其中DA-AC电路采用D类功放中自激反馈模型,利用负反馈的自激振荡产生正弦波脉宽调制(SPWM)波,通过硬件之间的配合,实现了逆变电压输出及最大功率、同频同相的跟踪。 装置方案的选用 DC-AC逆变方案:采用D类功放中自振荡式模型的逆变拓扑,利用负
[单片机]
基于<font color='red'>MSP430</font>F169的光伏并网发电模拟装置
IAR for MSP430的安装
1 IAR的下载 1.1部分亮点 IAR是一款比较良心的编程软件,博主我一直写的是MATLAB和KEIL,初次接触IAR就发现了这款软件的某些吸引人的地方。对于长期从事编程的同学来说,配色方案绝对是重中之重,IAR的配色方案一开始就吸引了我。 IAR另外一个特别吸引我的地方就是分频,对于屏幕的要求,当然是越多越好,IAR像MATLAB一样提供了分屏功能,就这两个亮点就足够吸引博主我!(注意的是有些人可能不会关闭分屏显示,其实只要双击分屏线就可以取消了) 1.2关于下载 IAR的下载大家可以直接去TI官方下载,博主我这里可以免费为大家提供一个百度云下载链接 链接:https://pan.baidu.com/s/1A-Jb-T
[单片机]
IAR for <font color='red'>MSP430</font>的安装
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved