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也是能运行的。

  • 相关阅读:
    大数据基础1
    java之MySQL的使用
    java反射
    java多线程
    java异常
    指针综合
    指向函数的指针变量做函数的参数
    指向函数的指针
    字符串指针法赋值
    字符串冒泡排序和折半查找
  • 原文地址:https://www.cnblogs.com/worldsing/p/3396364.html
Copyright © 2011-2022 走看看