智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1125|回复: 0
打印 上一主题 下一主题

求助!!低子中断优先级无法被打断

[复制链接]

1

主题

10

帖子

0

精华

高级会员

Rank: 4

积分
657
威望
411
贡献
184
兑换币
138
注册时间
2016-11-1
在线时间
31 小时
毕业学校
曲阜师范大学
跳转到指定楼层
1#
发表于 2017-2-19 14:46:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "gpio.h"
#include "common.h"
#include "uart.h"
#include "pit.h"


/* 每1秒触发一次 */
static void PIT0_ISR(void)
{
    printf("PIT0 IT enter!\r\n");
    DelayMs(500);
    printf("PIT0 IT exit!\r\n");
}

/* 每200MS 触发一次 */
static void PIT1_ISR(void)
{
    printf("PIT1 IT!\r\n");
}

int main(void)
{
    DelayInit();
    GPIO_QuickInit(HW_GPIOE, 6, kGPIO_Mode_OPP);
    UART_QuickInit(UART4_RX_PE25_TX_PE24, 115200);
    //设置优先级分组
    NVIC_SetPriorityGrouping(NVIC_PriorityGroup_2);
    NVIC_SetPriority(PIT0_IRQn, NVIC_EncodePriority(NVIC_PriorityGroup_2, 2, 2)); /* PIT0中断,抢占2 子优先级1 */
    NVIC_SetPriority(PIT1_IRQn, NVIC_EncodePriority(NVIC_PriorityGroup_2, 2, 1)); /* PIT1中断,抢占2 子优先级2 */
    //中断优先级修改完毕

    PIT_QuickInit(HW_PIT_CH0, 1000*1000);
    PIT_CallbackInstall(HW_PIT_CH0, PIT0_ISR);
    PIT_ITDMAConfig(HW_PIT_CH0, kPIT_IT_TOF, true);

    PIT_QuickInit(HW_PIT_CH1, 200*1000);
    PIT_CallbackInstall(HW_PIT_CH1, PIT1_ISR);
    PIT_ITDMAConfig(HW_PIT_CH1, kPIT_IT_TOF, true);

    /* 打印优先级 */
    uint32_t PreemptPriority, SubPriority;
    NVIC_DecodePriority(NVIC_GetPriority(PIT0_IRQn), NVIC_PriorityGroup_2, &PreemptPriority, &SubPriority);
    printf("NVIC PIT0_IRQn PreemptPriority:%d SubPriority:%d\r\n", PreemptPriority, SubPriority);

    NVIC_DecodePriority(NVIC_GetPriority(PIT1_IRQn), NVIC_PriorityGroup_2, &PreemptPriority, &SubPriority);
    printf("NVIC PIT1_IRQn PreemptPriority:%d SubPriority:%d\r\n", PreemptPriority, SubPriority);

    while(1)
    {
        GPIO_ToggleBit(HW_GPIOE, 6);
        DelayMs(500);
    }
}

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-27 04:10 , Processed in 0.038994 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表