6041|2

1万

帖子

25

TA的资源

版主

楼主
 

CH554测试:RTX51 tiny [复制链接]

本帖最后由 dcexpert 于 2017-10-13 16:23 编辑

很久没有使用51单片机了,先试试RTX51吧,它是keil c51自带的,使用简单,效率高,占用空间少。

我们以闪灯为例,首先创建一个51空白程序,单片机选择SST89X58RD,然后将Keil\C51\RtxTiny2\SourceCode目录下的Conf_tny.A51文件复制到用户目录,并添加到项目中。

在项目选项中,操作系统(Operating system)选择RTX51 tiny。



打开Conf_tny.A51,修改INT_CLOCK为50000(默认是10000,通常在 1000-60000之间),这个值决定了系统的基本时间片。因为CH554上电后默认时钟频率是6M,芯片的指令周期是12分频,所以50000对应着 50000 x (12/6000000) = 0.1s = 100ms。时间越长,时间片就长,中断次数少;否则中断频率高。



TIMESHARING参数暂时不用修改,它决定了每个任务最长的执行时间(强制切换)。这里我们主动切换,就用不到这个参数。

然后添加主程序。

主程序
设计两个任务,每个任务控制一个LED。一个1S翻转一次,另外一个500ms翻转一次。使用RTX51时,不需要编写main()函数,软件从任务0开始执行。

  1. #include <reg52.h>#include <rtx51tny.h>

  2. sbit LED1 = P1^6;
  3. sbit LED2 = P1^7;

  4. job0 () _task_ 0
  5. {
  6.   os_create_task (1);

  7.   while(1)
  8.   {
  9.     // 1s
  10.     LED1 = !LED1;
  11.     os_wait(K_TMO, 10, 0);
  12.   }
  13. }

  14. job1 () _task_ 1
  15. {
  16.   while(1)
  17.   {
  18.     // 500ms
  19.     LED2 = !LED2;
  20.     os_wait(K_TMO, 5, 0);
  21.   }
  22. }
复制代码


完整例子:
blinky.zip (32.9 KB, 下载次数: 3)






此帖出自单片机论坛

最新回复

介绍了一部分,可以参考学习。   详情 回复 发表于 2021-8-4 11:44
点赞 关注
 

回复
举报

305

帖子

0

TA的资源

一粒金砂(高级)

沙发
 
此帖出自单片机论坛
 
个人签名单价1元含税的USB和Touchkey单片机CH551G已大批量出货,试样QQ:1258305301
 

回复

137

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

介绍了一部分,可以参考学习。

此帖出自单片机论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表