项目简介
本项目融合QP-nano框架的测试实验与基于C语言的交通信号灯控制系统。通过在ATmega32A硬件上开展QP-nano框架实验,助力开发者学习框架使用、测试RTOS概念知识、探究低端硬件性能和UML状态图建模的实用性。交通信号灯控制系统采用状态机设计模式,借助QM工具生成的代码框架,实现对交通信号灯行为的有效管控。
项目的主要特性和功能
QP-nano框架实验部分
- 提供简单LED闪烁示例,用于测试硬件设置与gcc编译选项。
- 实现简单“安全关键”系统,如行人灯控交叉路口(PELICAN)。
- 包含Capstone潜水计算机示例,展示状态机在实际场景中的应用。
交通信号灯控制系统部分
- 状态机管理:利用状态机控制交通信号灯针对车辆和行人的信号。
- 信号切换:依据接收到的信号,使交通信号灯在不同状态间切换。
- 超时控制:设置车辆绿灯最小时长和行人行走时间等超时参数。
- 硬件接口:提供与LED灯控制、LCD显示等硬件相关的接口。
- 错误处理:具备错误处理和恢复机制,保障系统稳定运行。
安装使用步骤
环境准备
安装gcc-avr、avr-libc、avrdude、cmake等依赖,同时确保C编译器和相关工具链(如GCC和AVR-GCC)已安装。
框架下载与配置
- 编辑
qpn_experiments/toolchain-avr-gcc.make
文件中的gcc-avr选项。 - 从这里下载QP-nano框架(5.3.0),并解压到
qpn
子目录。 - 可从这里下载QM图形建模工具(可选,用于打开
*.qm
文件)。
项目配置与编译
bash
cd qpn_experiments
mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchain-avr-gcc.make -DCMAKE_BUILD_TYPE=MinSizeRel ..
make
上传示例文件
以简单的blink
示例为例:
bash
make upload_blink
硬件连接
将ATmega32A放置在面包板上,连接16MHz晶体,设置熔丝为-U lfuse:w:0xff:m -U hfuse:w:0xd9:m
。连接相应的外设,如LED电阻、LCD显示屏、按钮等,各示例中外设具体连接和功能不同。
运行测试
运行微控制器上的程序,分别测试QP-nano框架示例和交通信号灯控制系统的功能。
注意:以上步骤假设用户已经具备基本的C语言编程环境和AVR微控制器的开发经验。对于具体的硬件连接和编程器选择,请根据实际的硬件和开发环境进行调整。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】