打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
51单片机如何入门RTOS?
1,裸机系统:单片机软件系统通常是一个裸机系统(也有叫前后台系统),就是只有一个主函数不停的循环,监控用户输入,执行,输出信息。
2,RTOS实时系统:就是系统可以同时运行多个任务(线程),有任务调度器调度多个任务,可视为同时运行多个任务。由于51单片机资源少,可供选择的系统不多。最经典的是:Keil IDE自带的RTX51 Tiny系统,它使用简单,方便,自带例程。
3,网上搜索《RTX51 Tiny第2版用户手册》,通读此手册(做个简单测试暂时不需要读也是可以的)。
4,RTX51 Tiny简介:最大线程数16个,最大活动线程数16个,代码需求900字节,线程切换时间100到700个时钟周期。系统API数据13个。(精简如此,入门的好选择)
5,如何测试?从Keil的安装目录下找到C51/RtxTiny2/Examples/Ex2,找到它,拷贝Ex2到电脑桌面,进入文件夹,双击RTX_EX2.uvproj打开工程。可按照下图添加编译输出文件夹。编译成功之后即可进入仿真测试。把每个线程数的计数器变量添加到观察窗口1,点击运行按钮即可看到计数器值在变化(下面有效果图)。形式去下。
6,如何定义一个任务(线程)?与普通函数差不多,函数名后面加关键词(_task_ 数字)这里的数字就是任务编号(创建任务时使用这个数字编号范围0到15支持16个任务),函数内部是一个无限循环。
void ButtonCheck() _task_ 0
{
//定义变量,这里的变量会存到任务栈
//使用os_create_task(数字)创建其他任务
//数字为任务ID
while(1)
{
// 自定义按键检测功能
os_switch_task();//切换到其他线程
}
}
注:使用系统之后这里是没有main()函数的,系统会从0号任务开始。
注:其他任务使用上面的形式按需定义
7,注意事项:多任务设计具有很大的灵活性,添加一个新任务基本不影响当前的设计。也是单片机入门后的一个提高事项。使用多任务之后,函数不要操作公共变量。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
[转]浅谈RTX51
51单片机移植操作系统
Keil5创建基于RTX的STM32工程
如何进行嵌入式应用软件任务划分
rt-thread的线程调度与管理
影响RTOS实时性的因素有哪些?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服