zoukankan      html  css  js  c++  java
  • 【iCore4 双核心板_uC/OS-II】例程一:认识 uC/OS-II

    一、实验说明:

      本例程移值入uC/OS-II,建立三个任务,红色和绿色LED分别以固定频率闪烁,并且打开串口工具,

    输出浮点数据。

    二、源代码下载链接:

    链接:https://pan.baidu.com/s/1o9pY0uI 密码:5roo

    三、核心代码:

    /*
     * Name                : main
     * Description         : ---
     * Author              : zh.
     *
     * History
     * --------------------
     * Rev                 : 0.00
     * Date                : 07/12/2017
     * 
     * create.
     * --------------------
     */
     /*实验现象:
     红色和绿色LED灯分别以固定的频率闪烁,并且打开串口工具,可以看到有数据输出。
     */
    int main(void)
    {
        system_clock.initialize();                               //系统时钟初始化
        led.initialize();                                        //LED初始化
        usart6.initialize(115200);                               //串口初始化
    
        OSInit();                                                //UCOS初始化
        OSTaskCreate(start_task,                                 //创建开始任务
                     (void*)0,                                   //任务参数
                       (OS_STK*)&START_TASK_STK[START_STK_SIZE-1], //任务堆栈
                     START_TASK_PRIO);                           //任务优先级
        OSStart();                                               //开启UCOS    
    }
    /*
     * Name                : start_task
     * Description         : ---
     * Author              : liu.
     *
     * History
     * --------------------
     * Rev                 : 0.00
     * Date                : 07/12/2017
     * 
     * create.
     * --------------------
     */
    void start_task(void *pdata)
    {
        OS_CPU_SR cpu_sr;
    
        OSStatInit();//初始化统计任务
    
        OS_ENTER_CRITICAL();//关中断
    
        OSTaskCreate(led0_task,(void*)0,(OS_STK*)&LED0_TASK_STK[LED0_STK_SIZE-1],LED0_TASK_PRIO);//创建LED0任务
        OSTaskCreate(led1_task,(void*)0,(OS_STK*)&LED1_TASK_STK[LED1_STK_SIZE-1],LED1_TASK_PRIO);//创建LED1任务
        OSTaskCreate(usart_task,(void*)0,(OS_STK*)&USART_TASK_STK[USART_STK_SIZE-1],USART_TASK_PRIO);//创建usart任务
        OSTaskSuspend(OS_PRIO_SELF);//挂起start_task任务
    
        OS_EXIT_CRITICAL();//开中断
    }
    /*
     * Name                : led0_task
     * Description         : ---
     * Author              : liu.
     *
     * History
     * --------------------
     * Rev                 : 0.00
     * Date                : 07/12/2017
     * 
     * create.
     * --------------------
     */
    void led0_task(void *pdata)
    {
        while(1)
        {
            LED_RED_ON;                //红灯亮
            OSTimeDlyHMSM(0,0,0,500);  //延时500ms
            LED_RED_OFF;               //红灯灭
            OSTimeDlyHMSM(0,0,0,500);  //延时500ms
        }
    }
    /*
     * Name                : led_task
     * Description         : ---
     * Author              : liu.
     *
     * History
     * --------------------
     * Rev                 : 0.00
     * Date                : 07/12/2017
     * 
     * create.
     * --------------------
     */
    void led1_task(void *pdata)
    {
        while(1)
        {
            LED_GREEN_ON;               //绿灯亮
            OSTimeDlyHMSM(0,0,0,1000);  //延时1000ms
            LED_GREEN_OFF;              //绿灯灭
            OSTimeDlyHMSM(0,0,0,1000);  //延时1000ms
        }
    }
    /*
     * Name                : usart_task
     * Description         : ---
     * Author              : liu.
     *
     * History
     * --------------------
     * Rev                 : 0.00
     * Date                : 07/12/2017
     * 
     * create.
     * --------------------
     */
    void usart_task(void *pdata)
    {
      double f=0.1;
    
        while(1)
        {
            f+=0.1f;                                 //浮点型运算
            usart6.printf("float f=%.4f
    ",f);     //串口输出
            OSTimeDlyHMSM(0,0,0,500);                //延时500ms
      }
    }

    iCore4链接:

  • 相关阅读:
    详述Xgboost原理
    Uncaught Error: Script error for "popper.js", needed by: bootstrap
    JS 正则表达式从地址中提取省市县
    OneThink实现多图片批量上传功能
    移动端图片上传解决方案localResizeIMG先压缩后ajax无刷新上传
    PHPCMS V9添加模板自定义全局变量
    CentOS 7:如何安装防火墙?
    HTML5的fieldset标签
    PHP使用CURL详解
    asp.net+swfupload 多图片批量上传(附源码下载)
  • 原文地址:https://www.cnblogs.com/xiaomagee/p/8376370.html
Copyright © 2011-2022 走看看