第3讲 msp430中断系统st_517705504

上传人:wt****50 文档编号:37629606 上传时间:2018-04-20 格式:PDF 页数:42 大小:652.60KB
返回 下载 相关 举报
第3讲 msp430中断系统st_517705504_第1页
第1页 / 共42页
第3讲 msp430中断系统st_517705504_第2页
第2页 / 共42页
第3讲 msp430中断系统st_517705504_第3页
第3页 / 共42页
第3讲 msp430中断系统st_517705504_第4页
第4页 / 共42页
第3讲 msp430中断系统st_517705504_第5页
第5页 / 共42页
点击查看更多>>
资源描述

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

1、一、一、MSP430的中断系统简介二、的中断系统简介二、MSP430的中断系统实验的中断系统实验第第3讲讲MSP430中断系统中断系统1、中断的概念、中断的概念2、MSP430的中断源类型的中断源类型3、MSP430x169的中断向量表、中断优先级的中断向量表、中断优先级4、可屏蔽中断响应过程、可屏蔽中断响应过程5、端口、端口P1和和P2外中断外中断6、可屏蔽中断程序设计、可屏蔽中断程序设计一、一、MSP430的中断系统的中断系统CPU执行流程执行流程中断服 务程序中断服 务程序1中断服 务程序中断服 务程序 2非预料 事件非预料 事件1非预料 事件非预料 事件 2无中断时有中断时无中断时有中

2、断时1、中断的概念、中断的概念中断是暂停中断是暂停CPU正在运行的程序,转去执行相应的正在运行的程序,转去执行相应的中断服务程序中断服务程序,完毕后返回被中断的程序继续运行的现象和技术。,完毕后返回被中断的程序继续运行的现象和技术。2、 MSP430的中断源类型的中断源类型两种分类:两种分类:1) 按中断源的按中断源的响应是否受控响应是否受控分类分类2)按中断源来自按中断源来自MCU外部引脚还是内部外部引脚还是内部分类分类MSP430的中断源分为三大类型的中断源分为三大类型系统复位中断系统复位中断 system reset (也称不可屏蔽中断,也称不可屏蔽中断,Nonmaskable inte

3、rrupts) 不能被总控位不能被总控位GIE和自己的分控位和自己的分控位IE位屏蔽的中断位屏蔽的中断非屏蔽中断非屏蔽中断(Non)maskable interrupts 不能被总控位不能被总控位GIE屏蔽, 但能被自己的分控位屏蔽, 但能被自己的分控位IE位屏蔽的中断位屏蔽的中断可屏蔽中断可屏蔽中断maskable interrupts 能被总控位能被总控位GIE和自己的分控位和自己的分控位IE位屏蔽的中断位屏蔽的中断1) 按中断源的按中断源的响应是否受控响应是否受控分类分类GIE : 可屏蔽中断屏蔽位可屏蔽中断屏蔽位 (General Interrupt Enable Bit)置位置位1:

4、 允许所有可屏蔽中断复位允许所有可屏蔽中断复位0: 禁止所有可屏蔽中断禁止所有可屏蔽中断159876543210保留保留VSCG1SCG0OSCOFFCPUOFFGIENZC状态寄存器状态寄存器SR (Status Register)开开/关总中断控制位指令关总中断控制位指令 (disable/enable general interrupt bit)指令格式执行操作指令格式执行操作V Z N C_DINT( );0 GIE* * * *_EINT( );1 GIE#include “intrinsics.h”#include “in430.h“非屏蔽中断的控制机制非屏蔽中断的控制机制indi

5、vidual enable bitCPU 优先权裁决中断请求优先权裁决中断请求CPU 中断响应中断响应(non)_maskable interruptCPU 优先权裁决优先权裁决GIECPU 中断响应中断响应可屏蔽中断的控制机制(分控位、总控位)可屏蔽中断的控制机制(分控位、总控位) individual enable bit中断请求中断请求maskable interrupt1-enable 0-disable1-enable 0-disable1-enable 0-disable 分控位总控位分控位分控位总控位分控位2) 按中断源来自按中断源来自MCU外部引脚还是内部外部引脚还是内部分类分

6、类外中断外中断内 中 断内 中 断由外部引脚由外部引脚(如如RST/NMI)产生的中断产生的中断, 为为外中断外中断,由,由MCU内部模块产生的中断,称内部模块产生的中断,称内中断内中断RST/NMI P1.0P1.7外中断外中断内中断内中断外中断外中断: 引脚引脚RST/NMI、P1.0P1.7、P2.0P2.7产生的中断产生的中断 内中断内中断: 由由MCU内部模块产生内部模块产生MSP430F169的外中断和内中断的外中断和内中断Interrupt SourceInterrupt FlagSYSTEM InterruptAddressPriorityPower up, External

7、Reset Watchdog, Flash memoryWDTIFG, KEYVReset0FFFEh15(highest)NMI , Oscillator Fault, Flash memory access violationNMIFG,OFIFG,ACCVIFG(Non)maskable0FFFCh14Timer_B7TBCCR0 CCIFGMaskable0FFFAh13Timer_B7TBCCR1 to TBCCR6 CCIFGs, TBIFGMaskable0FFF8h12Comparator_ACAIFGMaskable0FFF6h11Watchdog timerWDTIFGMa

8、skable0FFF4h10USART0 receiveURXIFG0Maskable0FFF2h9USART0 transmit I2C transmit/receive/othersUTXIFG0Maskable0FFF0h8ADC12ADC12IFGMaskable0FFEEh7Timer_A3TACCR0 CCIFGMaskable0FFECh6Timer_A3TACCR1 and TACCR2 CCIFGs, TAIFGMaskable0FFEAh5I/O port 1(8 flags)P1IFG.0P1IFG.7Maskable0FFE8h4USART1 receiveURXIFG

9、1Maskable0FFE6h3USART1 transmitUTXIFG1Maskable0FFE4h2I/O port 2(8 flags)P2IFG.0P2IFG.7Maskable0FFE2h1DAC12 DMADAC12_0IFG, DAC12_1IFG, DMA0IFGDMA2IFGMaskable0FFE0h0(lowest)3、MSP430x169中断源、中断标志、中断向量地址 、 中断优先级中断源、中断标志、中断向量地址 、 中断优先级(中断类型号中断类型号)(MSP430F169.pdf P11)8 bit peripheral modules中 断 向 量 表中 断 向

10、量 表FLASH/ROMRAM16 bit peripheral modulesSFRsFFFFhFFE0h FFDFh0200h01FF h0100h00FF h0010h000F h0000hMSP430x169存储空间组织存储空间组织AddressInterrupt Source0FFFEhPower up, External Reset Watchdog, Flash memory0FFFChNMI , Oscillator Fault, Flash memory access violation0FFFAhTimer_B70FFF8hTimer_B70FFF6hComparator_

11、A0FFF4hWatchdog timer0FFF2hUSART0 receive0FFF0hUSART0 transmit I2C transmit/receive/others0FFEEhADC120FFEChTimer_A30FFEAhTimer_A30FFE8hI/O port 1(8 flags)0FFE6hUSART1 receive0FFE4hUSART1 transmit0FFE2hI/O port 2(8 flags)0FFE0hDAC12 DMA/* * Interrupt Vectors (offset from 0xFFE0): 与中断向量表的偏移量与中断向量表的偏移量

12、 */ #define DACDMA_VECTOR (0 * 2u) /* 0xFFE0 DAC/DMA */ #define PORT2_VECTOR (1 * 2u) /* 0xFFE2 Port 2 */ #define USART1TX_VECTOR (2 * 2u) /* 0xFFE4 USART 1 Transmit */ #define USART1RX_VECTOR (3 * 2u) /* 0xFFE6 USART 1 Receive */ #define PORT1_VECTOR (4 * 2u) /* 0xFFE8 Port 1 */ #define TIMERA1_VEC

13、TOR (5 * 2u) /* 0xFFEA Timer A CC1-2, TA */ #define TIMERA0_VECTOR (6 * 2u) /* 0xFFEC Timer A CC0 */ #define ADC12_VECTOR (7 * 2u) /* 0xFFEE ADC */ #define USART0TX_VECTOR (8 * 2u) /* 0xFFF0 USART 0 Transmit */ #define USART0RX_VECTOR (9 * 2u) /* 0xFFF2 USART 0 Receive */ #define WDT_VECTOR (10 * 2u

14、) /* 0xFFF4 Watchdog Timer */ #define COMPARATORA_VECTOR (11 * 2u) /* 0xFFF6 Comparator A */ #define TIMERB1_VECTOR (12 * 2u) /* 0xFFF8 Timer B CC1-6, TB */ #define TIMERB0_VECTOR (13 * 2u) /* 0xFFFA Timer B CC0 */ #define NMI_VECTOR (14 * 2u) /* 0xFFFC Non-maskable */ #define RESET_VECTOR (15 * 2u)

15、 /* 0xFFFE Reset Highest Priority */头文件头文件 io430x16x.h和和 msp430x16x.h4、MSP430非屏蔽和可屏蔽中断响应过程非屏蔽和可屏蔽中断响应过程当有当有N类型号的非屏蔽或可屏蔽中断源产生类型号的非屏蔽或可屏蔽中断源产生, 满足响应条件时满足响应条件时, CPU在执行完当前指令后在执行完当前指令后, 硬件自动完成下面操作:硬件自动完成下面操作: 1. 入栈保护断点入栈保护断点 (相当于执行相当于执行 PUSH PC) 2. 入栈保护入栈保护SR (相当于执行相当于执行 PUSH SR) 3. 清零清零SR(置置GIE=0, 屏蔽可屏蔽中断屏蔽可屏蔽中断, 并结束低功耗方式并结束低功耗方式) 4. 从中断向量表取中断向量至从中断向量表取中断向量至PC(相当于 执行相当于 执行MOV PxIES.y = 1 : y引脚引脚下降沿下降沿作为中断申请作为中断申请位位76543210 R/WPxIFG.7 PxIFG.6 PxIFG.5 PxIFG.4 PxIFG.3 PxIFG.2 PxIFG.1 PxIFG.0初始值初始值00000000PxIFG中断标志寄存器

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

当前位置:首页 > 建筑/环境 > 建筑机械

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