总结MSP430学习经验(3)

发布者:心灵捕手最新更新时间:2021-04-30 来源: eefocus关键字:MSP430  定时器  计数 手机看文章 扫描二维码
随时随地手机看文章

2:连续模式,定时器计数到0xFFFF;3:增减模式,0->TACCR0->0


TACLR: 定时器清零位。该位置位会复位 TAR,时钟分频和计数方向。TACLR位会自动复位并读出值为0


TAIE: TA 中断允许。该位允许 TAIFG 中断请求


0:中断禁止;1:中断允许


TAIFG: TA中断标记


0:无中断挂起;1:中断挂起


2、TAR:TimerA计数寄存器


学习经验总结】" alt="[转载]【msp430 学习经验总结】" width=30 height=30>


3、TACCTLx:捕获比较控制寄存器


学习经验总结】" alt="[转载]【msp430 学习经验总结】" width=30 height=30>


CMx:捕获模式


0:不捕获 ;1:上升沿捕获;2:下降沿捕获 ;3:上升和下降沿都捕获


CCISx:捕获比较选择,该位选择 TACCRx 的输入信号


0:CCIxA;1:CCIxB;2:GND;3:VCC


SCS:同步捕获源,该位用于将捕获通信和时钟同步


0:异步捕获;1:同步捕获


SCCI:同步的捕获/比较输入,所选择的 CCI 输入信号由 EQUx 信号锁存,并可通过该位读取


CAP:捕获模式


0:比较模式;1:捕获模式


OUTMODx:输出模式位。由于在模式 2,3,6 和 7 下 EQUx= EQU0,因此这些模式对 TACCR0 无效


0:OUT 位的值;1:置位;2:翻转/复位;3:置位/复位


4:翻转;5:复位;6:翻转/置位;7:复位/置位


CCIE:捕获比较中断允许位,该位允许相应的 CCIFG 标志中断请求


0:中断禁止;1:中断允许


CCI:捕获比较输入。所选择的输入信号可以通过该位读取


OUT:对于输出模式 0,该位直接控制输出状态


0:输出低电平;1:输出高电平


COV:捕获溢出位。该位表示一个捕获溢出发生。COV 必须由软件复位。


0:没有捕获溢出发生;1:有捕获溢出发生


CCIFG:捕获比较中断标志位


0:没有中断挂起;1:有中断挂起


4、TAIV:TimerA中断向量寄存器


学习经验总结】" alt="[转载]【msp430 学习经验总结】" width=30 height=30>


寄存器的值:


0:无中断挂起;


2:捕获比较1 TACCR1 CCIFG;


4:捕获比较2 TACCR2 CCIFG;


0xA:定时器溢出 TAIFG


5.MSP430中断嵌套机制


(1)430默认的是关闭中断嵌套的,除非你在一个中断程序中再次开总中断EINT。


(2)当进入中断程序时,只要不在中断中再次开中断,刚总中断是关闭的,此时来中断不管是比当前中断的优先级高还是低都不执行。


(3)若在中断A中开了总中断,刚可以响应后来的中断B(不管B的优先级比A高还是低),B执行完现继续执行。注意:进入中断B生总中断同样也会关闭,如果B中断程序执行时需响应中断C,则此时也要开总中断,若不需响应中断,则不用开中断,B执行完后中跳出中断程序进入A程序时,总中断会自动打开。


(4)若在中断中开了总中断,后来的中断同时有多个,则会按优先级来执行,即中断优先级只有在多个中断同时到来才起做用!中断服务不执行抢先原则。


(5)对于单源中断,只要响应中断,系统硬件自动清中断标志位,对于TA/TB定时器的比较/捕获中断,只要访问TAIV/TBIV,标志位倍被自动清除;对于多源中断要手动清标志位,比如P1/P2口中断,要手工清除相应的标志,如果在这种中断用“EINT();”开中断,而在打开中断前没有清标志,就会有相同的中断不断嵌入,而导致堆栈溢出引起复位,所以在这类中断必须先清标志现打开中断开关。


6.关于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工作在看门狗模式下的定时溢出引起的,还是看门狗写密钥错误引起的呢?………………………………


答案是没有方法,至少我没见过有什么方法,也没见过周边的人有什么方法。若有人知道方法谢谢分享。


关键字:MSP430  定时器  计数 引用地址:总结MSP430学习经验(3)

上一篇:CC1101与MSP430F5438的无线通信
下一篇:使用 MSP430 内部时钟生成随机数字

推荐阅读最新更新时间:2024-11-01 15:18

继电器定时器程序
继电器定时器程序 #include AT89x051.H //器件配置文件 #define uchar unsigned char //变量类型的宏定义 #define uint unsigned int uchar DATA_7SEG ={0xfc,0x60,0xda,0xf2,0x66, 0xb6,0xbe,0xe0,0xfe,0xf6}; /*0~9的数码管段码*/ uchar x ; /* 存放走时的数组*/ uchar y ={0,0,0,0}; /* 存放定时1的数组*/ uchar z ={0,0,0,0}; /* 存放定时2的数组*/ uch
[单片机]
stm32f407之高级定时器 死区互补PWM(操作寄存器)
高级定时器的功能有很多,这里只介绍死区互补PWM输出功能。其实死区互补PWM跟通用定时器的PWM配置差异不大,只是需要设置多CCER寄存器中的几个位以及刹车与死区寄存器BDTR。对寄存器的具体描述请参考数据手册。 配置步骤: 1. 使能相关时钟。 2. 配置相关的引脚模式、速度、以及复用功能。 3. 使能TIM时钟 4. 设置分频。 5. 设置周期。(ARR的值)周期=(PSC+1)* ARR / TIMx时钟 6. 产生一次更新事件,更新影子寄存器的值。 7. 在CCMR中设置PWM模式。 8. 设置各通道占空比。占空比= CCRx / ARR。 9. 使能比较输出。 10. 启动预装载。
[单片机]
单片机定时器中断时间误差的解决方案
1 前言 单片机内部一般有若干个定时器。如8051单片机内部有定时器0和定时器1。在定时器计数溢出时,便向CPU发出中断请求。当CPU正在执行某指令或某中断服务程序时,它响应定时器溢出中断往往延迟一段时间。这种延时虽对单片机低频控制系统影响甚微,但对单片机高频控制系统的实时控制精度却有较大的影响,有时还可能造成控制事故。为扩大单片机的应用范围,本文介绍它的定时器溢出中断与CPU响应中断的时间误差、补偿误差的方法和实例。 2 误差原因、大小及特点 产生单片机定时器溢出中断与CPU响应中断的时间误差有两个原因。一是定时器溢出中断信号时,CPU正在执行某指令;二是定时器溢出中断信号时,CPU正在执行某中断服务程序。 2.1. CP
[单片机]
基于单片机的开关稳压电源设计
1 引 言 MSP430系列单片机是美国TI公司生产的新一代16位单片机,是一种超低功耗的混合信号处理器(MixedSignal Processor),它具有低电压、超低功耗、强大的处理能力、系统工作稳定、丰富的片内外设、方便开发等优点,具有很高的性价比,在工程控制等领域有着极其广泛的应用范围。开关Boost稳压电源利用开关器件控制、无源磁性元件及电容元件的能量存储特性,从输入电压源获取分离的能量,暂时把能量以磁场的形式存储在电感器中,或以电场的形式存储在电容器中,然后将能量转换到负载。对DC—DC主回路采用Boost升压斩波电路。 2 系统结构和总设计方案 本开关稳压电源是以MSP430F449为主控制器件,它是TI公
[单片机]
基于单片机的开关稳压电源设计
MSP430G2553测试程序(长短按键识别)
//原始状态P1.6亮,P1.0暗,利用状态机进行按键检测,短按键情况下并释放的瞬间P1.0翻转,P1.6翻转 //长按键P1.0,P1.6按照10Hz的频率闪烁 // MSP430G2xx3 // ----------------- // /|\| XIN|- // | | | // --|RST XOUT|- // P1.3|KEY P1.6|-- LED // | P1.0|-- LED // 作者 http://jiwm.blog.163.com // Built with IAR Embedded
[单片机]
uc/OS-II下ARM7定时器捕获实现红外解码
今天下午的时候,调试努力之下,终于把红外解码弄出来了。 其实以前有次比赛的时候就已经用到了红外,只是那次用的是51单片机,用的是外部中断和延时检测脉宽来进行解码,因为51的时钟这些比较简单,所以解码很容易就正确了。但是现在换到了ARM7平台下,由于对它的不是很熟悉,怎么用普通语句实现精确延时对我来说是个难点。最后考虑用两个方案来实现红外的解码。方案一是用外部中断加定时器延时检测脉宽进行解码,但是结果并没有我想的那样美好,调试了半天也没有实现正确的解码,个人认为是任务节拍的影响,但是确实不知道该怎么修改,最后放弃方案一,改用方案二,用定时器捕获实现红外的解码,并最终实现。 LPC2103芯片带有定时器捕获,可以设置为下降沿,上升沿或双
[单片机]
uc/OS-II下ARM7<font color='red'>定时器</font>捕获实现红外解码
msp430g2553:双线12864库程序
(Display)msp430g2553:双线12864库程序 ************************************************************************************************** LCD12864.H **************************************************************** LCD12864 2线程序 rs (CS) 已经外接高电平 rw (SID) P2.0 en (SCLK) P2.1 PSB 已经外接低电平 RST 已经外接高电平 硬件电路,3号引脚接的10K电阻与地间
[单片机]
基于MSP430的低功耗仪表系统设计
1 引言   在科学技术与社会生产高度发达的今天,智能测试仪器与仪器仪表系统发展迅速,被测对象的跨度既广泛又具有多样性。计算机技术的迅猛发展使仪器仪表的发展上了一个新台阶,传统的检测设备被智能化仪器所取代。智能化仪表的两个主要的发展方向是大型自动测试系统和便携式低功耗智能仪表,功率问题也就成为电路设计所需考虑的重要因素之一。在本文中,我将提出一种基于MSP430的通用型低功耗仪表系统的设计方案。该低功耗系统与不同的传感器相结合,能够实现数据的采集与处理,并具备键盘输入与LCD显示功能,能适合各种工作场合。 2 低功耗仪表系统硬件设计   2.1硬件系统总体设计   本仪表系中选用的是MSP430芯片。MSP430系列是一款
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved