选择中断选项。(选择中断优先级要用到什么寄存器)

中断优先级寄存器选择中断优先级寄存器是微控制器中负责配置中断源优先级的专用寄存器。使用这些寄存器,可以根据应用程序需求指定每个中断源的优先级。优先级较高的中断会在优先级较低的中断之前得到处理。选择中断优先级寄存器的步骤:1. 识别中断源:确定要配置优先级的特定中断源。中断源可能包括外部中断、计时器或串口等外设。 2. 确定优先级寄存器:查阅微控制器数据手册以查找用于配置所选中断源优先级的特定寄存器。寄存器的名称和地址可能因不同的微控制器而异。 3. 配置优先级:根据应用程序需求设置优先级寄存器的值。较低的值表示较高的优先级。例如,如果希望将外部中断 0 指定为最高优先级,则可能将优先级寄存器设置为 0。 4. 保存设置:确保根据数据手册的任何特定要求保存优先级寄存器设置。这可能涉及写入到寄存器或触发固件更新机制。常见的中断优先级寄存器:不同微控制器架构使用不同的中断优先级寄存器。以下是常见寄存器的示例:ARM Cortex-M 系列:NVIC_IPRx(外部中断优先级寄存器)和NVIC_IPR0(内部中断优先级寄存器)AVR ATmega 系列:ETIMSK(外部中断屏蔽寄存器)和 EICRA(外部中断控制寄存器 A)PIC18F 系列:INTCON(中断控制寄存器)和 INTCON2(中断控制寄存器 2)示例:以下代码段展示了如何使用 ARM Cortex-M4 微控制器上的 NVIC_IPRx 寄存器为外部中断 0 配置高优先级: c include "stm32f4xx.h"void main() {// 设置 NVIC_IPRx 寄存器以将外部中断 0 设置为最高优先级NVIC_SetPriority(EXTI0_IRQn, 0); }注意事项:务必查阅微控制器数据手册以获得特定设备的准确寄存器和配置信息。优先级配置可能会影响系统的实时性。高优先级中断可能延迟低优先级中断的处理。一些微控制器可能提供嵌套中断,其中中断可以根据其重要性进一步分层。 选择中断选项

PIC系列单片机只有一个中断入口(004H),所有的中断都通过该入口进入中断服务子程序,至于是哪一个中断源,只有在进入中断服务子程序后查询中断标志才能确认。 该单片机没规定中断的优先级,也没有用于设定中断优先级的寄存器,中断的优先级是由于中断服务子程序中断查询中断标志的顺序确定的。 CPU响应一个中断并进入中断服务程序后,全局中断允许位GIE被自动清零,CPU在此期间不响应其它中断,也不能形成中断嵌套。 因此,在使用中断时要合理安排查询中断标志的顺序,尽量缩短CPU在中断服务程序中逗留的时间。 在用PIC系列单片机构成系统时应尽量减少中断源的个数,对于那些执行时间较长且不需采用中断方式来处理的事件,应尽量采和查询标志的方式进行处理;对于那些必须采用中断方式处理的事件,在中断服务程序中要尽量先查询对系统至关重要的事件的中断标志。 另外,在退出中断服务程序时,只清除处理过的中断标志即可,而不需要将所有的中断标志清除。 对于RB口电平变化中断,一方面要保存RB口每次变化后的状态,以便在下次中断时判断是哪根口线上的电平发生了变化;另一方面可以设置产生中断的口线标志,并将由于该中断而未执行的程序在中断服务程序外通过查询口线标志来执行,以减少CPU在中断服务程序中逗留的时间。

本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!

相关阅读

添加新评论