zoukankan      html  css  js  c++  java
  • FreeRTOS中断测试

    configMAX_SYSCALL_INTERRUPT_PRIORITY
    高于此优先级的中断,不能被禁止

    #ifdef __NVIC_PRIO_BITS
        #define configPRIO_BITS             __NVIC_PRIO_BITS
    #else
        #define configPRIO_BITS             4                  
    #endif
    
    #define configLIBRARY_LOWEST_INTERRUPT_PRIORITY         15                      //中断最低优先级
    #define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY    5                       //系统可管理的最高中断优先级
    #define configKERNEL_INTERRUPT_PRIORITY         ( configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )
    #define configMAX_SYSCALL_INTERRUPT_PRIORITY    ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )

    1
    测试举例

    int main(void)
    {
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//设置系统中断优先级分组4
    
        TIM3_Int_Init(10000-1,7200-1);      //初始化定时器3,定时器周期1S
        TIM5_Int_Init(10000-1,7200-1);      //初始化定时器5,定时器周期1S
    
        //创建中断测试任务
        xTaskCreate((TaskFunction_t )interrupt_task,            //任务函数
                    (const char*    )"interrupt_task",          //任务名称
                    (uint16_t       )INTERRUPT_STK_SIZE,        //任务堆栈大小
                    (void*          )NULL,                      //传递给任务函数的参数
                    (UBaseType_t    )INTERRUPT_TASK_PRIO,       //任务优先级
                    (TaskHandle_t*  )&INTERRUPTTask_Handler);   //任务句柄
    }
    
    //中断测试任务函数 
    void interrupt_task(void *pvParameters)
    {
        static u32 total_num=0;
        while(1)
        {
            total_num+=1;
            if(total_num==5) 
            {
                printf("关闭中断.............
    ");
                portDISABLE_INTERRUPTS();               //关闭中断
                delay_xms(5000);                        //延时5s
                printf("打开中断.............
    ");    //打开中断
                portENABLE_INTERRUPTS();
            }
            vTaskDelay(1000);
        }
    }   

    测试效果
    1

  • 相关阅读:
    Javascript 匿名函数与闭包
    Javascript 闭包的理解
    Javascript 函数及其执行环境和作用域
    JAVA generic array 泛型数组
    在Ubuntu 13.10 中安装配置 Hadoop 2.2.0
    Java 中文字符判断 中文标点符号判断
    当程序以Windows Services形式启动时当前路径不对
    .NET中Dictionary<TKey, TValue>浅析
    [趣文]单词间那无尽的等待
    DNS拾遗(二)
  • 原文地址:https://www.cnblogs.com/zhangxuechao/p/11709487.html
Copyright © 2011-2022 走看看