RTX51 Tiny包含多个示例项目帮助开发者开始使用RTX Tiny。
每个示例分开存储在\KEIL\C51\RTXTINY2\EXAMPLES\文件夹下,包含µVision project文件帮助开发者快速创建和运行程序。
以下示例程序是自动安装的:
- RTX_EX1
这个项目使用RTX Tiny示范round-robin多任务。
- RTX_EX2
这个项目示范如何使用os_wait函数和signal传递。
- TRAFFIC
这个项目示范如何使用RTX Tiny控制交通信号灯。
RTX1_EX1示例
RTX_EX1是一个使用µVision的RTX51 Tiny示例。示范使用round-robin多任务的RTX51 Tiny程序,由一个源文件组成,RTX_EX1.C。工程的所有文件位于\KEIL\C51\RTXTINY2\EXAMPLES\EX1\文件夹下。
使用µVision build RTX_EX1
- 启动µVision IDE并打开RTX_EX1.UV2工程。
- 选择Project — Build Target对RTX_EX1进行编译和连接。
从命令行build RTX_EX1
- 编译RTX_EX1.C源文件。
- 连接RTX_EX1.OBJ目标文件。
RTX_EX1程序被编译和连接后,就可以使用µVision Debugger进行测试。
RTX_EX2示例
RTX_EX2是一个使用µVision的RTX51 Tiny示例。示范如何使用os_wait函数和signal传递。
RTX_EX2由一个源文件组成,RTX_EX2.C。工程的所有文件位于\KEIL\C51\RTXTINY2\EXAMPLES\EX2\文件夹下。
使用µVision build RTX_EX2
- 启动µVision IDE并打开RTX_EX2.UV2工程。
- 选择Project — Build Target对RTX_EX2进行编译和连接。
从命令行build RTX_EX2
- 编译RTX_EX2.C源文件。
- 连接RTX_EX2.OBJ目标文件。
RTX_EX2程序被编译和连接后,就可以使用µVision Debugger进行测试。
Traffic示例
TRAFFIC示例是一个交通灯控制器。比RTX_EX1和RTX_EX2示例更加复杂,不使用像RTX51 Tiny这样的多任务实时操作系统时无法轻易执行的。
TRAFFIC是一个时间控制的交通灯控制器,根据用户定义的时钟周期运行。超出这个周期,黄灯闪烁。如果行人按下请求按钮,交通灯立即切换为"walk(步行)"状态。否则,交通灯循环执行。
交通灯控制器命令
可以通过8051的串口接口与交通灯控制器通信。可以使用调试器的Serial Window测试交通灯控制器命令。
下表的串口命令是有效的。这些命令由ASCII文本字符组成。所有命令必须使用回车结尾。
命令 | 串口文本 | 描述 |
Display(显示) | D | 显示clock, start和ending 时间 |
Time(时间) | T hh:mm:ss | 设置当前时间,按24小时格式。 |
Start(开始) | S hh:mm:ss | 设置开始时间,按24小时格式。交通灯控制器在起始时间和结束时间段内正常运行。这些时间之外,黄灯闪烁。 |
End(结束) | E hh:mm:ss | 设置结束时间,按24小时格式。 |
源文件
TRAFFIC应用程序由3个源文件组成,可以在\KEIL\C51\RTXTINY2\EXAMPLES\TRAFFIC\文件夹找到。
- TRAFFIC.C包含交通灯控制器程序分为以下任务。
- Task 0 Initialize:初始化串行接口并启动所有其它的任务。任务0删除自身,初始化只需要一次。
- Task 1 Command:是交通灯控制器命令处理程序,这个任务控制并处理串口接收到的命令。
- Task 2 Clock:控制时钟。
- Task 3 Blinking:当时钟超过有效时间范围时控制黄灯闪烁。
- Task 4 Lights:当时钟时间在有效时间范围内时(开始和结束之间),控制交通灯灯相。
- Task 5 Button:读取行人按下按钮,并给lights任务发送信号。
- Task 6 Quit:检查串行流上的ESC字符。如果遇到,此任务终止先前指定的显示命令。
- SERIAL.C执行驱动串行接口的中断。这个函数包含putchar和getchar函数。高级I/O函数printf和getline调用这些基础程序。交通灯应用也可以不使用中断驱动串行I/O。但是不会表现的很好。
- GETLINE.C是从串口接收到字符的命令行编辑器。这个源文件可以被MEASURE应用使用。
使用µVision build TRAFFIC
- 在µVision IDE中打开TRAFFIC.UV2。
- 选择Project — Build Target编译并连接TRAFFIC
TRAFFIC程序被编译和连接后,就可以使用µVision Debugger进行测试。