本应用笔记介绍了使用多个中断的 RX 系列微控制器。该文件包括规格书、运行确认条件、硬件和软件以及示例程序。
规格
在处理 IRQ1 中断时,会发生 IRQ3 中断。
通常,PSW 中的 I 标志在发生中断时被清除,从而禁用其他中断。为了使能多个中断。为了使能多个中断,需要在中断处理程序中复位 PSW 中的 I 标志。
将 I 标志设置为 1 将启用具有更高优先级的中断。
启用多个中断的设置
有必要在中断函数的声明中使用#pragma interrupt。此声明指定启用多个中断,允许同时生成多个中断。下面是一个示例多中断使能规范。
示例:RX220上的 IRQ1 中断函数声明
一旦启用了多个中断,就可以在中断功能开始时将 PSW 中的 I 标志设置为 1,以允许多个中断。
外围功能及应用
连接图
软件
操作概述
初始设置
——对时钟、I/O 端口和 IRQ 中断进行初始设置后,软件等待 SW1 输入。调用应用笔记 RX Group: Initial Settings Example 中描述的函数来进行时钟设置。IRQ 检测设置包括设置 IRQ1 和 IRQ3 的检测级别,将 IRQ1 设置为中断优先级 1,将 IRQ3 设置为中断优先级 2。
SW1 输入检测
——当按下 SW1 时(P31 上的低电平输入),接收到 IRQ1 中断请求
IRQ1 中断
IRQ1 中断处理程序打开 LED0。只要 SW1 被按住,IRQ1 中断处理程序内的处理循环就会循环。当 SW1 被释放时,LED0 关闭,IRQ1 中断处理程序结束。
SW2 输入检测
– 与 SW1 输入检测方式类似,当按下 SW2 时(P33 上的低电平输入),接收到 IRQ3 中断请求。
IRQ3中断
IRQ3 中断
——IRQ3 中断处理程序使 LED1 亮起。只要 SW2 被按下,IRQ3 中断处理程序内的处理循环就会循环。当 SW2 被释放时,LED1 关闭,IRQ3 中断处理程序结束。
显示多个中断发生的时序图
要产生多个中断,请在按住 SW1 的同时按下 SW2。注意在按住SW2的同时按下SW1不会产生多个中断,因为IRQ1的中断优先级低于IRQ3的中断优先级。
编辑:hfy
全部0条评论
快来发表一下你的评论吧 !