4个版本
0.1.3 | 2020年5月29日 |
---|---|
0.1.2 | 2020年5月22日 |
0.1.1 | 2020年5月22日 |
0.1.0 | 2020年5月21日 |
#735 in 嵌入式开发
每月25次下载
17KB
199 行
ppm_decode
为no_std rust提供的PPM解码。这个库解码了无线电控制和其他嵌入式应用中常用的PPM格式。
示例
通常,PPM脉冲输入可能通过输入引脚中断接收。重要的是您需要向这个解析器提供脉冲开始的时间。在PPM中,唯一需要考虑的时间差是连续脉冲之间的时间差。
请参阅PpmParser
文档以获取示例用法,或参考test_ppm_decode项目,该项目演示了使用stm32f4微控制器的示例。
状态
- 匿名PPM时间事件的基本解析
- 基本测试
- 使用示例
- 测试时钟溢出
- 测试不寻常的配置限制
- 在一段时间内锁定在一致的频道数
- 文档注释和示例
- CI
lib.rs
:
该库提供将PPM脉冲边缘解码为PPM帧的功能。它不要求特定的中断处理或输入引脚测量策略。用户需要提供的只是脉冲的相对时间,该库将从这些信息中提取PPM帧。
PPM频道值编码为多个脉冲之间的间隔。通常,PPM脉冲是高值,而脉冲之间的间隔是低值;然而,某些PPM接收器会反转信号,其中PPM信号被拉高,脉冲是低值。PPM帧由这种方式编码的多个频道组成,在最后一个频道和第一个频道之间有一个较长的间隔,然后是下一个帧。这个帧分隔间隔称为帧同步或复位。因此,具有五个频道的PPM帧可能看起来像这样
|___|___|___|___|___| 其中高值是脉冲,低值是脉冲之间的间隔。脉冲持续时间通常调校得尽可能短,同时仍然可靠地传输。
该库为常见的配置值提供默认值,例如
- 最小PPM频道值(脉冲之间的最小间隔)
- 最大PPM频道值(脉冲之间的最大间隔)
- 最小帧同步持续时间(脉冲之间的间隔被认为是一个帧同步/复位的最小时间)
- 被认为是有效帧的最小PPM频道数。