OS_RATE_HZ const  OSCfg_TickRate_Hz = (OS_RATE_HZ  )OS_CFG_TICK_RATE_HZ;
#define  OS_CFG_TICK_RATE_HZ 200u   /* Tick rate in Hertz (10 to 1000 Hz) */

时间片长度200Hz,也就是一个系统时钟节拍5ms

串口实验
为Task1和Task2分配2个时间片,分别做串口打印

OSTaskCreate((OS_TCB    * )&Task1_TaskTCB,      (CPU_CHAR  * )"Task1 task",        (OS_TASK_PTR )task1_task,          (void      * )0,                   (OS_PRIO     )TASK1_TASK_PRIO,     (CPU_STK   * )&TASK1_TASK_STK[0],  (CPU_STK_SIZE)TASK1_STK_SIZE/10,   (CPU_STK_SIZE)TASK1_STK_SIZE,      (OS_MSG_QTY  )0,                   (OS_TICK     )2,  //2个时间片,2*5=10ms                 (void      * )0,                   (OS_OPT      )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR,(OS_ERR    * )&err);OSTaskCreate((OS_TCB    * )&Task2_TaskTCB,      (CPU_CHAR  * )"task2 task",        (OS_TASK_PTR )task2_task,          (void      * )0,                   (OS_PRIO     )TASK2_TASK_PRIO,         (CPU_STK   * )&TASK2_TASK_STK[0],  (CPU_STK_SIZE)TASK2_STK_SIZE/10,   (CPU_STK_SIZE)TASK2_STK_SIZE,      (OS_MSG_QTY  )0,                   (OS_TICK     )2,   //2个时间片,2*5=10ms                (void      * )0,               (OS_OPT      )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR, (OS_ERR    * )&err);void task1_task(void *p_arg)
{u8 i,task1_num=0;OS_ERR err;p_arg = p_arg;POINT_COLOR = RED;LCD_ShowString(30,130,110,16,16,"Task1 Run:000");POINT_COLOR = BLUE;while(1){task1_num++;LCD_ShowxNum(110,130,task1_num,3,16,0x80);for(i=0;i<5;i++) printf("Task1:01234\r\n");LED0 = ~LED0;LED2 = ~LED2;OSTimeDlyHMSM(0,0,1,0,OS_OPT_TIME_HMSM_STRICT,&err);}
}void task2_task(void *p_arg)
{u8 i,task2_num=0;OS_ERR err;p_arg = p_arg;POINT_COLOR = RED;LCD_ShowString(30,150,110,16,16,"Task2 Run:000");POINT_COLOR = BLUE;while(1){task2_num++;LCD_ShowxNum(110,150,task2_num,3,16,0x80);for(i=0;i<5;i++) printf("Task2:56789\r\n");LED1 = ~LED1;OSTimeDlyHMSM(0,0,1,0,OS_OPT_TIME_HMSM_STRICT,&err);}
}

实验现象

重新调整时间片个数
分配3个时间片,任务切换时间延长至15ms

OSTaskCreate((OS_TCB    * )&Task1_TaskTCB,      (CPU_CHAR  * )"Task1 task",        (OS_TASK_PTR )task1_task,          (void      * )0,                   (OS_PRIO     )TASK1_TASK_PRIO,     (CPU_STK   * )&TASK1_TASK_STK[0],  (CPU_STK_SIZE)TASK1_STK_SIZE/10,   (CPU_STK_SIZE)TASK1_STK_SIZE,      (OS_MSG_QTY  )0,                   (OS_TICK     )3,  //3个时间片,3*5=15ms                 (void      * )0,                   (OS_OPT      )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR,(OS_ERR    * )&err);

实验现象

UCOSIII时间片轮转调度相关推荐

  1. 正点原子STM32 UCOSiii学习笔记——时间片轮转调度

    在学习正点原子视频的时间片轮转调度时,发现一个问题:当设置时间片为2个10ms时串口收到的消息为图1所示,Tsak1输出5次以后(未执行换行)2个时间片用完,Task2开始执行,输出5次后回到Task ...

  2. 操作系统实验(二):进程调度(c实现优先权调度和时间片轮转调度)

    一.[实验目的] ①理解有关进程控制块.进程队列的概念. ②掌握进程优先权调度算法和时间片轮转调度算法的处理逻辑. 二.[实验内容] ①设计进程控制块PCB的结构,分别适用于优先权调度算法和时间片轮转 ...

  3. Linux 学习笔记(八):时间片轮转调度

    看这篇文章前可以先了解一下时间片:Linux 学习笔记(七):时间片_Amentos的博客-CSDN博客 一.基本概念 时间片轮转调度算法(Round-Robin,RR)主要用于分时操作系统中的进程调 ...

  4. 时间片轮转调度 java_java OS时间片轮转调度基本算法

    java OS时间片轮转调度基本算法实例源码讲解. public class OSprocess{ private String name; //进程名 private OSprocess next; ...

  5. 进程调度 RR 时间片轮转调度 java实现

    时间片轮转调度 时间片轮转调度策略:在轮转(RR)法中,系统将所有的就绪进程按FCFS策略排成一个就绪队列.系统可设置每隔一定时间(如30 ms)便产生一次中断,去激活进程调度程序进行调度,把CPU分 ...

  6. 基于STM32的简易RTOS分析-时间片轮转调度

    调度器一般分为两种分别是合作式调度器(时间片轮转)和抢占式调度器(优先级).<时间触发嵌入式系统设计模式>这本书里面提到调度器可以看作是一个简单的操作系统,允许以周期或者单次的方式来调用任 ...

  7. 基于mykernel的时间片轮转调度

    学号: 363 原创作品,转载请注明出处. 本实验资源来源: https://github.com/mengning/linuxkernel/ 一. 实验环境配置 本次实验在实验楼完成: 在实验楼的终 ...

  8. 时间片轮转调度 java_操作系统- 实验一  模拟处理机调度的时间片轮转法(Java实现)...

    实验一  模拟处理机调度的时间片轮转法 一.实验目的:用c/c++模拟时间片轮转法 二.实验内容:输入进程的个数,每个进程的名称及每个进程需要工作的时间,本实验中假定对CPU时间片设置为一个时间单位, ...

  9. OS2.2.5:调度算法之时间片轮转调度、优先级调度、多级反馈队列调度

    文章目录 知识总览 调度算法 时间片轮转 举例 优先级调度 多级反馈队列调度 举例 总结 知识总览 各种调度算法的学习思路 算法思想 算法规则 3.这种调度算法是用于 作业调度 还是 进程调度? 抢占 ...

最新文章

  1. numpy 中的 squeeze() 函数
  2. ListView 与 它里面的Item 点击滑动冲突
  3. java开源库web3j的以太坊过滤器(filter)和智能合约事件(event)教程
  4. mysql切换到使用openssl,MySQL主从复制+OpenSSL
  5. ssm框架里面前端拿HTML写,ssm框架引入Vue,声明式渲染,标签的href拼接字符串
  6. 中科院自动化所与华为联合提出!视觉目标检测大模型GAIA
  7. 微信小程序教程笔记6
  8. 我要看的学习网站——php
  9. python爬虫100个入门项目
  10. 如何调试微信浏览器内嵌H5
  11. 组装计算机什么配置比较好,组装电脑什么配置好 组装电脑配置推荐
  12. Ubuntu 安装字体
  13. noip模拟赛 whzzt-Warmth
  14. python编写一个汽车类_编写类-汽车类
  15. postMan请求结果中文乱码
  16. java面试全套清单_Java 全套面试题 PDF 下载
  17. 于博士cadence教程讲解内容
  18. Python是什么编程语言
  19. spoon各个控件的说明
  20. 如何给word 文章的每段段尾添加 脚注

热门文章

  1. ARFoundation系列讲解 - 47 扫描识别图常见的问题
  2. Zadig 完成 100% 开源:开启软件交付 3.0 时代
  3. 【Paper】2019_Distributed bipartite leader-following consensus of linear multi-agent systems with inpu
  4. Maya---基础知识(2)
  5. 【硬件驱动】360驱动大师 v2.0.0.1660单文件网卡绿化版
  6. 冯山C语言第六章作业答案,C语言四川师范大学信息与计算科学冯山实验九课案.docx...
  7. 华为机试—姓名的夫妻相
  8. 什么是linux嵌入式系统,嵌入式系统是什么
  9. python输入十个学生的成绩、判断优良中差并计算人数_大数据基础习题(1)
  10. php镶入电脑网页,flash插件来调用pc的摄像头如何将它嵌入到TML页面