找回密码
 立即注册
楼主: fanxsp

原创极简的51-MCU专用RTOS TinyRTOS51

  [复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:468
  • 最近打卡:2025-05-01 10:58:55

44

主题

230

回帖

2841

积分

金牌会员

积分
2841
发表于 2024-11-9 00:56:13 | 显示全部楼层
Tiny RTOS 学习第一篇


完全按照楼主的教程,使用自制学习机验证简单流水灯测试程序:


流水灯原理图:
截图202411090017574568.jpg
按键原理图:
截图202411090018418991.jpg
测试功能:
程序初始功能为左到右的流水灯。
按键1: 左向右的流水灯;
按键2: 右向左的流水灯;
按键3: 三个灯闪烁;

代码:
Task0:
  1. /* LED控制任务  */
  2. void Task0(void)
  3. {
  4.         for(;;)
  5.         {
  6.                 if(mode == 1) {
  7.                         P35 = 0;                //LED On
  8.                         OSDelay(t) ;    // 任务延时
  9.                         P35 = 1;                //LED Off
  10.                         P36 = 0;                //LED On
  11.                         OSDelay(t) ;
  12.                         P36 = 1;                //LED Off
  13.                         P37 = 0;                //LED On
  14.                         OSDelay(t) ;
  15.                         P37 = 1;                //LED Off
  16.                 } else if (mode == 2) {
  17.                         P37 = 0;
  18.                         OSDelay(t) ;    // 任务延时
  19.                         P37 = 1;
  20.                         P36 = 0;                //LED On
  21.                         OSDelay(t) ;
  22.                         P36 = 1;                //LED Off
  23.                         P35 = 0;                //LED On
  24.                         OSDelay(t) ;    // 任务延时
  25.                         P35 = 1;                //LED Off
  26.                 } else {
  27.                         P35 = 0;
  28.                         P36 = 0;
  29.                         P37 = 0;
  30.                         OSDelay(t) ;    // 任务延时
  31.                         P35 = 1;
  32.                         P36 = 1;
  33.                         P37 = 1;
  34.                         OSDelay(t) ;    // 任务延时
  35.                        
  36.                 }
  37.                
  38.                
  39.         }
  40. }
  41. /* 按键检测 任务 */
  42. void Task1(void)
  43. {
  44.         static unsigned char Key1Cnt ;
  45.         unsigned char newKey;
  46.         for(;;)
  47.         {
  48.                 if(!P64 || !P65 || !P66)
  49.                 {
  50.                         if(!P64) {
  51.                                 newKey = KEY1;
  52.                         } else if (!P65) {
  53.                                 newKey = KEY2;
  54.                         } else {
  55.                                 newKey = KEY3;
  56.                         }
  57.                        
  58.                         if(oldKey != newKey) {
  59.                                 Key1Cnt = 1;
  60.                                 oldKey = newKey;
  61.                         }
  62.                        
  63.                         if(Key1Cnt < 0xff) Key1Cnt ++ ;
  64.                 }
  65.                 else
  66.                 {
  67.                         Key1Cnt = 0 ;
  68.                 }
  69.                
  70.                 if(Key1Cnt == 250)
  71.                 {
  72.                         OSEnterCritical() ;
  73.                         mode = newKey;
  74.                         OSExitCritical() ;
  75.                 }
  76.                
  77.                 OSTaskSuspend() ;  // 任务挂起
  78.         }
  79. }
复制代码


实验效果:




不争是争
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:265
  • 最近打卡:2025-05-01 07:25:06

0

主题

206

回帖

1522

积分

金牌会员

积分
1522
发表于 2024-11-9 08:26:45 | 显示全部楼层
本帖最后由 大叶子 于 2024-11-9 08:28 编辑
大*** 发表于 2024-11-9 00:56
Tiny RTOS 学习第一篇

看这面板是,游戏机?

展示一下,游戏机的内容吧,我挺好奇的。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:468
  • 最近打卡:2025-05-01 10:58:55

44

主题

230

回帖

2841

积分

金牌会员

积分
2841
发表于 2024-11-9 17:25:17 | 显示全部楼层
大*** 发表于 2024-11-9 08:26
看这面板是,游戏机?

展示一下,游戏机的内容吧,我挺好奇的。

不是游戏机, 温湿度计。 学习用的。
不争是争
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:265
  • 最近打卡:2025-05-01 07:25:06

0

主题

206

回帖

1522

积分

金牌会员

积分
1522
发表于 2024-11-10 14:05:07 | 显示全部楼层
大*** 发表于 2024-11-9 17:25
不是游戏机, 温湿度计。 学习用的。

有游戏机颜值的温湿度计,是不错呢
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:468
  • 最近打卡:2025-05-01 10:58:55

44

主题

230

回帖

2841

积分

金牌会员

积分
2841
发表于 2024-11-10 15:35:05 | 显示全部楼层
它里边有蓝牙模块,语音模块,温湿度模块。 还有flash。 外部有5个按键, 背部还有一个P32用于Usb烧录程序的, 如果强行做成游戏机也是可以的。
不争是争
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:154
  • 最近打卡:2025-04-30 08:40:57
已绑定手机

15

主题

630

回帖

730

积分

高级会员

积分
730
发表于 2024-11-11 08:50:46 | 显示全部楼层
大*** 发表于 2024-11-10 15:35
它里边有蓝牙模块,语音模块,温湿度模块。 还有flash。 外部有5个按键, 背部还有一个P32用于Usb烧录程序 ...

那就做个?我来复刻
STC 666 888
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:53
  • 最近打卡:2024-12-27 08:18:49

0

主题

132

回帖

136

积分

注册会员

积分
136
发表于 2024-11-11 09:49:04 | 显示全部楼层
学习了
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:468
  • 最近打卡:2025-05-01 10:58:55

44

主题

230

回帖

2841

积分

金牌会员

积分
2841
发表于 2024-11-14 09:35:14 | 显示全部楼层
大佬这个OS有最新版本吗? 和新例程吗?
不争是争
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:53
  • 最近打卡:2024-12-27 08:18:49

0

主题

132

回帖

136

积分

注册会员

积分
136
发表于 2024-11-14 11:41:08 | 显示全部楼层
学习一下
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:501
  • 最近打卡:2025-05-01 14:43:21

1

主题

183

回帖

1863

积分

金牌会员

积分
1863
发表于 2024-11-15 07:16:34 | 显示全部楼层
本帖最后由 fanxsp 于 2024-11-15 09:30 编辑
大*** 发表于 2024-11-14 09:35
大佬这个OS有最新版本吗? 和新例程吗?

有新版本,新增一些功能,有空的时候,整理一下再上传。
我手头只有一块开天斧实验板,只能做一些很简单的例程。
关于例程,你有什么建议?
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 02:48 , Processed in 0.177199 second(s), 115 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表