不能用51单片机的中断机制来套用MSP430的中断模式。当MSP430有多个中断请求发生时,响应最高优先级(优先级共有16级)的中断。响应中断时,MSP430会将不可屏蔽中断控制位SR.GIE复位,即关闭全局中断。因此,一旦MSP430响应了中断,即使有更高优先级的可屏蔽中断出现,也不会中断当前正在响应的中断而去响应较高优先级的中断。但SR.GIE复位不影响不可屏蔽中断,所以仍可接收不可屏蔽中断的中断请求。至于如何实现像51单片机一样的中断嵌套,可以考虑下面的几点:
(1)430默认的是关闭中断嵌套的,除非你在一个中断程序中再次开总中断GIE
(2)当进入中断服务程序时,只要不在中断服务程序中再次开中断,则总中断是关闭的,此时后面到来的中断不管是比当前中断的优先级高还是低都不执行;
(3)若在中断A中开了总中断,则可以响应后来的中断B(不管B的优先级比A高还是低),B执行完现继续执行。注意:进入中断B生总中断同样也会关闭,如果B中断程序执行时需响应中断C,则此时也要开总中断,若不需响应中断,则不用开中断,B执行完后中跳出中断程序进入A程序时,总中断会自动打开;
(4)若在中断中开了总中断,后来的中断同时有多个,则会按优先级来执行,即中断优先级只有在多个中断同时到来才起做用!中断服务不执行抢先原则。
(5)对于单源中断,只要响应中断,系统硬件自动清中断标志位,对于TA/TB定时器的比较/捕获中断,只要访问TAIV/TBIV,标志位被硬件自动清除;对于多源中断要手动清标志位,比如P1/P2口中断,要手工清除相应的标志,如果在这种中断服务程序中再打开中断,而在打开中断前没有清标志,就会有相同的中断不断嵌入,而导致堆栈溢出引起复位,所以在这类中断必须先清标志再打开中断开关。
关键字:MSP430 中断嵌套 中断机制
引用地址:
MSP430中断嵌套问题
推荐阅读最新更新时间:2024-11-11 13:27
MSP430单片机中断嵌套机制简介
1、MSP430单片机默认是关闭中断嵌套的,除非你在一个中断程序中再次开启总中断EINT。 2、对于单源中断,只要响应中断,系统硬件自动清中断标志位,对于TA/TB定时器的比较/捕获中断,只要访问TAIV/TBIV,标志位将被自动清除;对于多源中断要手动清标志位,比如P1/P2口中断,要手工清除相应的标志,如果在这种中断用“EINT();”开中断,而在打开中断前没有清标志,就会有相同的中断不断嵌入,而导致堆栈溢出引起复位,所以这类中断必须先清中断标志再打开总中断开关。 3、当进入中断服务程序时,只要不在中断服务程序中再次开启中断,MSP430单片机总中断是关闭的,此时再来中断不管是比当前中断的优先级高还是低都不执行,至到当
[单片机]
MSP430F149与ESP8266串口通信(上)
一、前言 针对网上90%的例程都是针对51单片机(或者STM32)和ESP8266模块进行串口通信,故开此帖记录MSP430与ESP8266对接的过程,希望大家不要走弯路,及时实现自己所需要的功能。本帖分为MSP430F149与ESP8266串口通信(上)、MSP430F149与ESP8266串口通信(中)和 MSP430F149与ESP8266串口通信(下)三部分,其中,在(上)部分主要介绍ESP8266的基本使用及利用 USB转串口工具 对ESP8266进行AT指令的操作;(中)部分主要介绍,MSP430F149与ESP8266进行对接的注意事项,主要讲解MSP430下发数据给ESP8266,并给出相应的电路原理图和代码,(
[单片机]
MSP430F5438学习笔记 FLAHS操作
1.前言 MSP430F5438的片内FLASH可以当做EEPROM使用,该部分FLASH称为INFO FLASH,总共有4块每块128Byte。虽然INFO FLASH容量比较少,但是多数情况还是够用的。 【2014年1月回顾】 存在问题需要立刻改进 2.代码实现 // 时钟默认情况 // FLL时钟 FLL选择 XT1 // 辅助时钟 ACLK选择 XT1 32768Hz // 主系统时钟 MCLK选择 DCOCLKDIV 8000000Hz // 子系统时钟 SMCLK选择 DCOCLKDIV 8000000Hz // UART时钟选择 ACLK // 低频波特率产生 96
[单片机]
基于MSP430F2132的温差式原油流量传感器设计
0 引言 随着人们生活水平的提高,汽车使用越来越普遍,对能源的需求量越来越多。石油是重要的能源之一。油井生产石油的产量也成为油田领导人重点关注的问题。油井的产油量可用流量表示,获取油井流量的过程称为油井计量。对油井准确、及时的计量,不仅对油田管理人员制定油井生产方案、提高油井生产效率有重要的指导意义,也可为市场管理人员调控成品油价格提供一定的参考。传统玻璃管量液的产液量获取方式,不仅人工劳动强度大,且测量误差大、实时性差、效率低,已远远不能满足油井计量实时性、可靠性、准确性的要求。随着科学技术的发展,市场上出现了多种原油流量传感器,如科里奥利式、超声式、涡轮式、浮子式、涡街式、容积式、核式等。但由于原油的物性比较复杂,粘度、比重、
[单片机]
MSP430 SPI(Serial Peripheral Interface) 入门学习
基本简介 这次MSP430入门介绍是基于MSP430FR2433 Lunchpad进行学习。从小白开始进行SPI学习,理解使用SPI模块。如有错误的地方,大家多多指正。 MSP430 User Guide 学习 每个人学习MSP430的方法是不一样的,我习惯第一步先从User Guide开始。 文件:MSP430FR4xx and MSP430FR2xx Family User’s Guide.pdf 章节:Chapter 23 eUSCI - SPI Mode 23.1 增强型通用串行通信接口(eUSCI_A, eUSCI_B) 概要 eUSCI_A和eUSCI_B都支持SPI串行通信。 23.2 eUSCI 介绍 -
[单片机]
MSP430复位的几种情况
---------------------------------------------------------------------- 1.看门狗超时复位 由于没有及时喂狗或在程序一开始没有关闭看门狗,导致看门狗溢出复位。在调试阶段应该屏蔽看门狗,在程序的一开始使用WDTCTL = WDTPW + WDTHOLD; 语句关闭看门狗。 2.堆栈溢出复位 如果堆栈溢出导致复位,你应该感到庆幸,庆幸你发现了。在程序编译完成后应该看map,查看当前堆栈使用情况,430的22×2和2471堆栈都是默认80B,可以开启堆栈使用量报警。按照老鸟的说法,自己使用了多少堆栈自己心里应该清楚。对于我们这样的菜鸟,我说,编译器清楚,呵呵。
[单片机]
MSP430如何使用energia
首先下载编译器 energia是我在2019年电赛时选A题,只能使用TI公司的开发板时接触到的。 energia是一个高度类似于arduino的编译环境 energia下载 相信大家都会使用arduino编译器,如何使用便不用说了。 对于使用energia出现的问题 我在使用energia时,当MSP430到了,试着第一次烧录时,发现找不到串口,然后我试着下载各种MSP430的驱动,都不行,然后我有点怀疑是不是电脑出了什么问题,试着在队员电脑上烧录程序,发现情况也是一样的,最后在一个论坛的回答上找到了答案。 由于比赛时间有限,我便试着下载了MSP430 的另一个编译器CCS,然后在安装上CCS以后,串口驱动的问题已经得到了
[单片机]
基于MSP430FW427的无磁水表的设计
1 MSP430FW42x单片机介绍 MSP430FW42x系列单片机是TI公司针对电子式流量与旋转运动检测最新开发的专用MCU芯片,它将超低功耗MCU、旋转扫描接口(SCAN IF)和液晶显示LCD驱动模块完美地结合在一起。该器件的超低功耗结构和流量检测模块不仅延长了电池的寿命,同时还提高了仪表的精度与性能。MSP430FW42x的典型应用包括热量仪表、热水和冷水仪表、气体仪表和工业流量计、风力计以及其他旋转检测应用。 2 流量测量的原理 2.1 基本原理 一个由叶轮或螺旋齿轮构成的机械装置把流体流动转换为转动,这种转换能够实现对流体流量的测量。 把一个谐振回路中的电感置于叶轮的上方可以检
[单片机]