找回密码
 注册
查看: 221|回复: 2
打印 上一主题 下一主题

51单片机RTX-51TINY多任务操作系统工程模板

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-9-5 09:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
>51单片机多任务系统的工程模板<
' y6 ]2 n5 H# L! M0 T$ @6 n3 C" P* ~% H3 h- F

2 {+ P* s9 ]* W. Z3 BRTX51-Tiny是一种实时操作系统(RTOS),可以用它来建立多个任务同时执行的程序。! l/ s2 Q- c: H9 f0 u
2 w9 n' e: y/ m: S# \" `( B9 Z

' b1 v2 g! \7 T' v
7 f8 b! s! V1 i6 w. m7 [. z
最大任务数$ ^' |& H" n* f  a. S3 E
16
; v* o# G; j* C5 z( a! h# k4 j
最大活动任务8 m/ V4 P2 }$ Q# R
16
& ^- j. W, {4 ?. p" y& Y! |9 U4 ?
代码空间需求
, W8 _# f  J9 m( a' y+ I
900字节最大
. U1 }1 Q3 B2 C4 J
数据空间需求
6 {! B) t9 a: Q) v" e. K1 k$ M
7字节
; a- t6 v) P5 V* k& C' R7 c
栈空间需求! j' d, q* G/ x( R" F: J6 j% j$ a9 M
3字节/任务2 s  q5 S# j0 D! V- Q
外部RAM需求
, X" X# ~- [3 O9 t1 w
0字节* b% b: n7 C2 o* y, A0 J
定时器
! M2 D6 a( h7 e0 |* A
0: E% ^* H) V; w) C, v$ [# g
系统时钟因子4 b: _+ D4 D; x  U0 t1 U
1000~65535
; `1 G1 {* `" j, @$ M
中断等待" l% z5 M  e$ t% t
20个周期或更少
* H+ @, H& k+ C& I4 q: \5 Z5 S
上下文切换时间1 f: t" C# b/ {# n" x8 ?
100~700个周期
0 X% j8 y9 @. f7 O

- T% G& p2 h$ c/ _% P单片机源程序如下:
  • #include "main.h"
  • int flag = 0;   //LED标志位
  • /*--------------------------------------------------------------------------------------------
  •     初始任务
  • --------------------------------------------------------------------------------------------*/
  • void task_create(void) _task_ 0
  • {
  •     UGL_Delay(0);       //延时没有用(防止编译器警告)
  •         os_create_task(1);  //创建任务1
  •         os_create_task(2);  //创建任务2
  •         os_delete_task(0);  //删除任务0
  • }
  • /*--------------------------------------------------------------------------------------------
  •     LED任务
  • --------------------------------------------------------------------------------------------*/
  • void task_led(void) _task_ 1
  • {
  •   while(233)
  •   {
  •     if(flag)
  •     {
  •         os_wait2(K_IVL,50); //系统延时50个Tick
  •         LED = ~LED;
  •     }
  •     else
  •     {
  •         LED = 1;
  •     }
  •   }
  • }
  • /*--------------------------------------------------------------------------------------------
  •     按键任务
  • --------------------------------------------------------------------------------------------*/
  • void task_switch(void) _task_ 2
  • {
  •     while(233)
  •     {
  •         if(!S2) //下降沿生效
  •         {
  •             while(!S2);
  •             flag = 1;
  •         }
  •         if(!S3) //下降沿生效
  •         {
  •             while(!S3);
  •             flag = 0;
  •         }
  •         os_wait2(K_IVL,1);  //系统延时1个Tick
  •     }
  • }# [4 R0 l  Q0 ?3 R5 W* H$ o9 c

0 y. A2 ^) q; h5 @

该用户从未签到

2#
发表于 2022-9-5 10:16 | 只看该作者
本帖最后由 Crash 于 2022-9-10 10:05 编辑 % f7 U& e* r; l$ G! T6 L
4 t8 }8 ]$ c6 Q) p% N, j; G
多多说一些自己的实际经验,相关知识,分享一些好的制作例子。

该用户从未签到

3#
发表于 2022-9-5 11:29 | 只看该作者
本帖最后由 风吹过后 于 2022-9-10 09:39 编辑
4 y. a# e8 c. ?3 F, v) C6 J: ~, n0 K4 S, g% x9 k
大佬发表的帖子,感觉很厉害,很棒。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-3 03:44 , Processed in 0.078125 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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