• 【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链接:

  • 相关阅读:
    css3的clip-path方法剪裁实现
    vue-cli3.0之vue.config.js的配置项(注解)
    用Canvas实现一些简单的图片滤镜
    转《图像处理之表面滤波》
    vue-axios的application/x-www-form-urlencod的post请求无法解析参数
    如何在linux中执行一个脚本
    列表、字典、元组小练习
    开发脚本自动部署及监控
    固化命令的方式、sed文本处理工具
    nginx服务、nginx反向代理和nfs共享服务
  • 原文地址:https://www.cnblogs.com/xiaomagee/p/8376370.html
Copyright © 2020-2023  润新知