|
MG32F10x Standard Peripherals Firmware Library
|
*************** (C) COPYRIGHT 2020 - 2023 megawin Technology *************** * @file NVIC/NVIC_IRQ_Priority/readme.txt * @author megawin Application Team * @version V0.1.10 * @date 05-January-2023 * @brief Description of the NVIC_IRQ_Priority example. ****************************************************************************** * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, MEGAWIN SHALL NOT BE HELD LIABLE FOR ANY DIRECT, * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM * THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. ******************************************************************************
这个例子演示了嵌套向量中断控制器(NVIC)的使用:
系统时钟工作在96Mhz,通过PLL配置产生。PLL时钟源是外部8Mhz晶振。APB1的分频比是1,APB2的分频比是1。
-配置2条Exit line(唤醒按钮Exit line和按键Exit line),在对应降沿上生成一个中断,并使用SysTick中断。
-这些中断用以下参数配置:
-唤醒按钮外线:
-Preemptionpriority = Preemptionpriorityvalue
-次优度 = 0
-按键外线:
-抢占优先级 = 0
-次优度 = 1
-SysTick处理程序:
-抢占优先权 =!抢占优先级值
-次优度 = 0
首先,抢占优先级值等于0,唤醒按钮Exti line的抢占优先级高于SysTick处理程序。
在键按钮Exti Line中断程序中,唤醒按钮Exti Line和Systick Preemption优先级颠倒。
在唤醒按钮Exti Line Interrupt例行程序中,设置了SysTick中断的挂起位,这将导致SysTick ISR仅在具有更高的抢占优先级时抢占唤醒按钮Exti Line ISR。
系统行为如下:
1)第一次出现按键Exti line中断时,SysTick抢占比唤醒按钮Exti line高。因此,当唤醒按钮Exti线路中断发生时,系统会执行Systick ISR,抢占发生的变量变为真,LED1开始切换。
2)当下一个键按钮Exti line中断发生时,SysTick抢占比唤醒按钮Exti line 低。
因此,当唤醒按钮Exti line中断发生时,Preemptionoccured变量变为0,LED1停止切换。
然后在无限循环中)重复此行为。
为了使程序工作,您必须执行以下操作 :
运行此例程