单片机应用技术课件第三章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

以下中断源可产生SNMI:

Power Management Module (PMM) SVML/SVMH supply voltage fault

③ ④
PMM high/low side delay expiration
Vacant memory access JTAG mailbox (JMB) event
第3章 中断、时钟与低功耗
1、内容 ① 轮询与中断 ② 430中断系统 ③ UCS时钟系统 ④ UCS模块失效安全操作 ⑤ 低功耗工作模式 ⑥ 寄存器与控制位 ⑦ 例程 ⑧ 习题 2、要求 ① 掌握轮询与中断的概念 ② 掌握430中断系统的功能和特点 ③ 掌握系统复位中断、UNMI和可屏蔽中 断 ④ 掌握C430中ISR(Interrupt Service Routine)的编程方法 ⑤ 掌握单源中断和多源中断的处理方法 ⑥ 掌握时钟系统的特点与使用方法 ⑦ 掌握AM、LPM0、LPM3、LPM4的特 点与应用
对非屏蔽中断:Only the individual enable bit must be set for NMI to be requested.
(2)中断处理
The interrupt latency is 6 cycles, starting with the acceptance of an interrupt request, and lasting until the start of execution of the first instruction of the ISR. The interrupt logic executes the following: 1. Any currently executing instruction is completed. 2. The PC, which points to the next instruction, is pushed onto the stack. 3. The SR is pushed onto the stack. 4. The interrupt with the highest priority is selected if multiple interrupts occurred during the last instruction and are pending for service. 5. The interrupt request flag resets automatically on singlesource flags. Multiple source flags remain set for servicing by software. 6. All bits of SR are cleared except SCG0, thereby terminating any low-power mode. Because the GIE bit is cleared, further interrupts are disabled. 7. The content of the interrupt vector is loaded into the PC; the program continues with the ISR at that address.
(4)中断服务函数 中断服务函数:与硬件相关联,在一定条件下才能进入,中断服务函数必须预设中断条件。
普通函数:相当于子程序,可以写到主函数里面去。
#pragma vector = 中断矢量变量 __interrupt void 函数名(void) {
函数变量定义
函数执行语句 } 其中: 中断矢量变量:说明了该中断服务函数对应的中断向量表中的中断地址,查对应头文件得到。 __interrupt:说明了是中断服务函数。 C430中,断点保护和现场保护由编译器自动完成。
address stored in the NMI.
以下中断源可产生UNMI: ① ② ③ An edge on the RST/NMI pin when configured in NMI mode An oscillator fault occurs An access violation to the flash memory
中断请求:CPU在执行某一事件A的过程中,由于系统内、外的某种原 因,发生了另一事件B请求CPU迅速去处理。 中断源:能发出中断请求,引起中断的装置或事件,分外部中断源和 内部中断源。 中断响应:CPU暂时中断当前的工作,转去处理事件B。 中断返回:事件B处理结束之后,再回到原来事件A被中断的地方继续 处理事件A。 中断优先级:不同中断源发出的中断请求重要程度不同,每个中断源 对应一个优先级,称为中断优先级。作用:多个中断同时发生时,决 定那个中断被相应。 中断处理过程:中断请求、中断响应、中断服务和中断返回。
(1)系统复位中断
系统复位中断源包括:BOR、 POR和PUC
Table 5. Interrupt Sources, Flags, and Vectors of MSP430F663x Configurations
(2)非屏蔽中断(Non)Maskable Interrupts (NMls) NMI不能被通用中断使能位GIE( general interrupt enable)屏蔽,但可被其各自的中断使能位
关闭总中断(可屏蔽中断)5种方式
② __bic_SR_register(GIE);
③ __disable_interrupt(); ④ _BIC_SR(GIE);
//见intrinsics.h
//见in430.h //见in430.h
⑤ _DINT();
//见in430.h
与MSP430汇编直接对应的 本征函数,非C语言标准库, 用于底层控制,见 includes->INTRINSICS.H 与in430.h
(3)可屏蔽中断Maskable Interrupts 可屏蔽中断由具有中断能力的外设产生,每个可屏蔽中断都可被一个中断使能位单 独关闭,所有的可屏蔽中断可被SR中的GIE位关闭。 使能总中断(可屏蔽中断)5种方式 ① _enable_interrupts(); ② __bis_SR_register(GIE); ③ __enable_interrupt(); ④ _BIS_SR(GIE); ⑤ _EINT(); ① _disable_interrupts(); //见intrinsics.h-本征函数,用于底层控制 //见intrinsics.h //见in430.h-本征函数,用于底层控制 //见in430.h //见in430.h //见intrinsics.h
将需要保存的数据及时保护起来,电源正常后再将其恢复,提高了系统的可靠性。
2 中断系统
1 中断系统
2.1 基本概念
中断:是CPU对系统发生的某个事件作出的一种反应。中断可以人为 设定,也可以是为响应突发性随机事件而设置。通常有I/O设备、信 息故障源等。
中断系统:实现中断功能的部件,包括中断装置和中断处理程序。
1 轮询方式与中断方式
轮询(Polling)方式:又称程序控制方式,是让CPU以一定的周期按次序查询每一个外 设,看它是否有数据处理的要求,若有则进行相应的服务;若无,或数据处理完毕, CPU接着查询下一个外设。 特点:CPU主动对外设进行查询,外设处于被动地位。 CPU执行效率低,等待时间长。 中断(Interrupt)方式:CPU暂时中止正在执行的程序,转去执行请求中断的那个外设 或事件的处理程序,处理完毕后再返回执行原来中止的程序。 特点:CPU通过响应中断请求为外设提供服务,外设处于主动地位,CPU在外设没有 产生中断时可以专心执行其他程序或休眠,执行效率高。
Watchdog Timer interrupt service routine #pragma vector=WDT_VECTOR __interrupt void WDT_ISR(void) { P1OUT ^= BIT4; // Toggle P1.4 }
Port 1 interrupt service routine #pragma vector=PORT1_VECTOR __interrupt void Port1_ISR(void) { P1OUT ^= BIT4; // Toggle P1.4 P1IFG &= ~BIT3; // P1.3 IFG cleared }
轮询方式和中断方式
中断方式的优点:
①中断方式下,单片机可选择特定的中断进行响应和处理,可通过相应的中断使能位来使 能系统希望响应和处理的中断而屏蔽不需要响应和处理的中断。轮询方式下,单片机必须 响应和处理每一个设备。 ②中断方式下,若有多个中断同时发生,单片机可根据中断优先级或程序设定来优先响应 和处理某一中断。轮询方式下,单片机逐一对设备进行访问,没有优先顺序之分。 ③中断方式解决了快速主机与慢速设备的数据传送问题。CPU能够及时处理应用系统的随 机事件,增强系统的实时性。 ④中断方式下,CPU不必查询和等待外设工作状态,可分时为多个设备服务,提高了 CPU的 工作效率和“并行”工作能力。 ⑤中断方式下,CPU具有处理设备故障、掉电等突发性事件的能力,可通过中断服务程序
屏蔽,430支持2种非屏蔽中断:系统非屏蔽中断SNMI (system NMI)和用户非屏蔽中断
UNMI (user NMI ). When an NMI interrupt is accepted, other NMIs of that level are automatically disabled to prevent nesting of consecutive NMIs of the same level. Program execution begins at the
执 行 事 件
中 断 请 求
中断响应
断点 继 续 执 行 事 件 A
A
中 断 服 务
中断返回
中断系统功能:
① 中断优先级排队——通过硬件电路 或软件查询实现。 ② 中断响应——CPU执行完当前指令后 响应中断请求,包括保护断点、保 护现场、执行ISR。 ③ 中断嵌套——CPU响应某一中断时, 在开总中断的前提下若有其他中断 发生,CPU将中断当前ISR,执行新 的ISR。 ④ 中断返回——恢复现场、恢复断点, 继续执行原主程序。
Байду номын сангаас
(3)中断返回
The interrupt handling routine terminates with the instruction: RETI. The return from the interrupt takes 5 cycles to execute the following actions: 1. The SR with all previous settings pops from the stack. All previous settings of GIE, CPUOFF, etc. are now in effect, regardless of the settings used during the ISR. 2. The PC pops from the stack and begins execution at the point where it was interrupted.
主 程 序
响应低级 中断请求
响应高级 中断请求 低级 中断
断点
序 低级
中断 返回 序 主程序
程 断点 程
高 级 中 断 服 务 程 序
主 程 序
RETI
返回低级 中断程序 RETI
430中断优先级:固定不变,取决 于模块在中断向量表中的排序。中 断向量越高优先级越高。
430的三类中断:
(1)系统复位中断 (2)非屏蔽中断 (3)可屏蔽中断☆
2.2 中断处理过程
(1)中断请求 对可屏蔽中断:When an interrupt is requested from a peripheral and the
peripheral interrupt enable bit and GIE bit are set, the ISR is requested.
相关文档
最新文档