51单片机移植RTX51系统实现多线程功能

阅读: 评论:0

51单片机移植RTX51系统实现多线程功能

51单片机移植RTX51系统实现多线程功能

一篇文章让你轻松学会单片机跑系统,再也不用LUO奔了。文章内容是从我以前使用STC8A4K64S单片机跑该系统时记录的WORD文档中截图出来的:




























下面一个程序可以让我们真切地体验到跑系统的好处,要是不跑系统,我们没办法仅用一个单片机依靠延时来实现三个灯按不同频率闪烁,因为程序只能一个个延时走完,而不能走到一半就去执行别的程序,而跑系统的好处就是其拥有时间片,即使是完全占用着CPU线程的延时也无法阻挡时间片把线程从一个执行事件中抽出来去执行另一个事件。

控制三个灯按不同频率闪烁,模拟3个线程工作:
#include <stdio.h>
#include <SCT8F.H>
#include <rtx51tny.h>

sbit led1=P2^0;
sbit led2=P4^1;

void Delay1ms(void) //@11.0592MHz
{
unsigned char i, j;

i = 15;
j = 90;
do
{while (--j);
} while (--i);

}

void Delaynms(char n)
{
while(n–)
Delay1ms();
}

void job0(void) task 0 //没有main函数,RTX51系统自动从任务0开始执行
{
os_create_task(1);
os_create_task(2);
while(1)
{
led1=0;
Delaynms(300);
led1=1;
Delaynms(300);

}

}

void job1(void)task 1
{

while(1)
{led2=0;Delaynms(1000);led2=1;Delaynms(1000);
}

}

void job2(void)task 2
{
while(1)
{
P35=0;
Delaynms(666);
P35=1;
P36=0;
Delaynms(666);
P36=1;
Delaynms(666);
}
}

本文发布于:2024-02-05 04:28:51,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170724155863041.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23