zoukankan      html  css  js  c++  java
  • uCos 没有延时Tick滴答定时器测试

    原来学uCos只是表面,今天才发现uCos没有心跳也是可以活的,只是延时功能。 即:OSTimeDly、OSTimexxx 头的功能不能使用。

    如果有是用OSTimexxx,任务将会卡死。其实,OSTimeDly 功能就是延时指定时间再唤醒任务。延时过程中任务是挂起状态,时间

    到后,等待高任务运行完后在运行。下面测试不开cpu硬件定时器情况下的程序:

    //Task0由 MainTask建立,优先级为2

    void Task0 (void *pArg)
    {
       pArg = pArg;
       while(1)
       {
        GPIOB->ODR &= ~GPIO_Pin_14;
        OSTaskSuspend(2);   //Task0挂起
       }
    }

    //Task0由 Main()建立,优先级为3
    void MainTask (void *pArg)
    {
       pArg = pArg;

       // OS_CPU_SysTickInit();
       OSSetupTask(Task0, 2);

       while(1)
       {
       GPIOB->ODR &= ~GPIO_Pin_14;
       OSTaskResume(2);  //唤醒Task0
        }
    }

    用户程序一共两个任务,Task0 优先于MainTask,Task0运行完后挂起让出CPU,MainTask接运行,

    完后唤醒Task0,Task0运行完后挂起让出CPU,如此循环调度。

    这说明在没有硬件定时器支持情况下,且不用OSTime功能,uCos也是能运行的。

  • 相关阅读:
    Java 课程设计:LWZ
    回溯法解骑士巡游问题
    2021.3.30 错误2
    2021.3.29 关于上下滚动
    2021.3.28 WebView的用法
    2021.3.27 关于错误1
    2021.3.26 Python创建表
    2021.3.25 人月神话阅读笔记06
    2021.3.24 个人作业第三阶段1
    2021.3.23 个人作业第三阶段
  • 原文地址:https://www.cnblogs.com/worldsing/p/3396364.html
Copyright © 2011-2022 走看看