项目简介
本项目是基于Arduino实现的DCC解码器核心系统。它借助AP_DCC_library和RSBus库,实现了支持配置变量(CVs)和通过RS - Bus消息进行反馈的DCC解码器所需的通用核心功能与对象。系统能初始化DCC和RS - Bus硬件,处理编程消息,支持不同类型解码器的CVs,还可通过特定MAC程序远程访问CVs。
项目的主要特性和功能
- 硬件初始化:依据
boards.h
里定义的引脚和USART设置,对DCC和RS - Bus硬件进行初始化。 - 编程消息处理:处理多数编程主模式(PoM)和服务模式(编程轨道)消息。
- 配置变量支持:支持不同类型解码器的配置变量(CVs),可通过PoM和服务模式远程访问。
- 反馈消息传输:PoM反馈消息通过RS - Bus使用地址128发送。
- 用户交互功能:用户按下编程按钮,系统会根据接收到的下一个DCC地址初始化解码器的DCC和/或RS - Bus地址;提供板载LED对象发出事件信号,提供板载按钮对象供用户配置新地址。
- 多处理器支持:已在传统ATMega处理器及较新的MegaAVR处理器上完成测试。
安装使用步骤
前提条件
假设用户已下载本项目的源码文件,并且已按照需求在Arduino IDE中安装了支持所用处理器的“boards”,如MightyCore、MegaCore、MegaCoreX和DxCore。
安装步骤
把下载的源码文件放到合适的Arduino项目目录中。
使用步骤
- 包含必要文件:主草图只需包含
AP_Accessory_Common.h
头文件,该文件涵盖了CvValues.h
、AP_DCC_library
、RSbus
、AP_DccButton
、AP_DccLED
和AP_DccTimer
等头文件和库。若仅需有限功能,也可单独包含所需头文件。 - 初始化设置:在
setup()
函数里调用cvValues.init()
选择此类型解码器的匹配CV默认值集,调用decoderHardware.init()
初始化解码器硬件。示例代码如下: ```cpp
include
void setup() {
cvValues.init(SwitchDecoder, 20);
decoderHardware.init();
}
3. 主循环操作:在主循环`loop()`中,调用`dcc.input()`检查是否接收到新的DCC消息,调用`decoderHardware.update()`更新板载LED并检查编程按钮是否被按下。示例代码如下:
cpp
void loop() {
if (dcc.input()) {};
decoderHardware.update();
}
``
若需通过RS - Bus发送反馈消息,可在用户草图中实例化一个或多个
RSbusConnection`类的RS - Bus对象。更详细的示例可参考BasicDecoder.md。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】