msp430中断小结(msp430G2553)

上传人:豆浆 文档编号:11122647 上传时间:2017-09-02 格式:PDF 页数:3 大小:65.73KB
返回 下载 相关 举报
msp430中断小结(msp430G2553)_第1页
第1页 / 共3页
msp430中断小结(msp430G2553)_第2页
第2页 / 共3页
msp430中断小结(msp430G2553)_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《msp430中断小结(msp430G2553)》由会员分享,可在线阅读,更多相关《msp430中断小结(msp430G2553)(3页珍藏版)》请在金锄头文库上搜索。

1、 Msp430中断小结 来源:第九单片机论坛 xuanzuhao 对launchpad这块板子的学习也快近二十天了,最大的感受是资料少,还有最坑爹的英文手册,不过十几天下来,嗨,自己的英文水平作为副产品的提升了,当然了,对msp430 的理解也不断的提高和深入,这其中不少的得益于坛里的高手们分享的他们的宝贵经验,给了我很大的启发.所以我也想把我学430 的一些心得同大家交流,这是我看手册总结的,如果有不对或遗漏的地方,还望大家踊跃的指正或补充。 msp430最大的优点就是低功耗,这是其他单片机无法比的。除了一些硬件细节上的低功耗设计外,还有五种低功耗模式,而低功耗的唤醒当然离不开中断了。所以中

2、断除了处理其他的相关的事情外,低功耗唤醒的重任也赋予于它。下面谈谈我对中断的理解,主要从(non)-maskable NMI interrupt和NMI interrupt、单源中断和多源中断进行介绍。希望大家踊跃跟帖进行指正和补充。 NMI和MI interrupt: 1: A (non)-maskable NMI interrupt can be generated by three sources : (1)An edge on the RST/NMI pin when configured in NMI mode (2)An oscillator fault occurs (晶体振荡器

3、失效) (3)An access violation to the flash memory(ACCVIE , ACCVIFG).(ACCVIE使能后,如果对flash的information segment读或写,会引起ACCVIFG置位,发出中断请求) !NOTES: NMI 中断服务程序中需先清除中断标志位,然后重新使能中断! eg1: #pragma vector=NMI_VECTOR _interrupt void nmi_ (void) do IFG1 &= OFIFG; / Clear OSCFault flag for (i = 0xFFF; i 0; i-); / Time

4、for flag to set P1OUT = 0x01; / Toggle P1.0 using exclusive-OR while (IFG1 & OFIFG); / OSCFault flag still set? IE1 |= OFIE; / Enable Osc Fault eg2:RESET/NMI pin of NMI function #pragma vector=NMI_VECTOR _interrupt void nmi_ (void) P1OUT = BIT6; /_BIC_SR_IRQ(LPM0_bits); for(j=0x0f;j0;j-); IFG1 &= NM

5、IIFG; IE1 |= NMIIE; 2: Maskable interrupts(可屏蔽中断)(with GIE enable): 板载的具有中断能力的外围模块,如: (1)watchdog timer overflow in interval-timer mode. (2)P1 and P2 Interrupts. (3)timerA 包括timer0(timer0_A0和timer0_A1)和timer1(timer1_A0和timer1_A1) 对于timer0和timer1,各有两个中断向量,以timer0为例说明: timer0中断向量:TIMER0_A1_VECTOR和TIME

6、R0_A0_VECTOR timer有三种功能模式-定时、比较和捕获. 下面对timer0中断向量和timer的功能的联系进行说明. (TA, TACCR0、TACCR1(或)TACCR 2) 定时功能:如果timerA值用作定时器,可以有三个定时器(TA、TACCR0和TACCR1),每个定时器有三种定时方式,有些定时器共用一个中断向量,TIMER0_A0_VECTOR专门为TACCR0配置,TA和TACCR1(对于timer1,还有TACCR2)共用TIMER0_A1_VECTOR,当多个中断同时发生,按优先级的先后顺序执行 eg1:TA定时器(TAIE) #pragma vector=T

7、IMER0_A1_VECTOR _interrupt void Timer_A(void) switch( TA0IV ) case 2: break; / CCR1 not used case 4: break; / CCR2 not used case 10: P1OUT = 0x01; / overflow break; eg2:TACCR0定时器(CCIE) #pragma vector=TIMER0_A0_VECTOR _interrupt void Timer_A (void) P1OUT = 0x01; / Toggle P1.0 eg3:TACCR1定时器(CCIE) #pra

8、gma vector=TIMER0_A1_VECTOR _interrupt void Timer_A(void) switch( TA0IV ) case 2: / CCR1 P1OUT = 0x01; / Toggle P1.0 CCR1 += 50000; / Add Offset to CCR1 break; case 4: break; / CCR2 not used case 10: break; / overflow not used 比较功能:比较功能主要用于产生并输出PWM波形,TACCR0用来设定周期,TACCR1用来设定占空比,timer0可以输出1路PWM波(对于tim

9、er1,可以输出2路PWM波) 捕获功能:捕获功能可用于速度计算和时间测量。可通过CCISx bits选择捕获输入是CCI0A(对应于CCR0的设置),还是CCI1A(对应于CCR1的设置)(timer1对应于CCIxB).中断向量对应于定时功能中的介绍。(捕获模式下,建议选择同步捕获) (3)Comparator_A+ Interrupts. (4)ADC10 Interrupts. 等. 单源中断和多源中断: (1)单源中断:对于单源中断,进入中断服务程序后,硬件会自动清除中断标志位。无需软件清除.单源中断有:Comparator_A+ Interrupts 、ADC10 Interrupts、WDT interrupt in interval-timer mode、timer interrupt等. (2)多源中断:对于多源中断,进入中断服务程序后,需软件清除相应中断标志位. 多源中断有:(non)-maskable NMI interrupt 、P1 and P2 Interrupts等.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号