Encoder 函式库
86Duino IDE 从 Coding 104 开始加入此函式库,用于操作 86Duino 提供的高速编码器输入介面功能。
86Duino 的编码器介面可切换成不同模式来与各种编码器连接,例如旋转编码器与光学尺。每组编码器介面有三根针脚,分别标为 A、B、Z,在不同模式下对应不同功能;不同 86Duino 板支援不同数量的编码器介面,例如在 86Duino Zero 上支援一组(轴),在 86Duino One 上则可支援四组(轴)。以下是 86Duino 编码器介面与脚位编号的对应表:
86Duino Boards | ENC0 pins | ENC1 pins | ENC2 pins | ENC3 pins |
Zero | A: 42 B: 43 Z: 44 |
|||
One | A: 42 B: 43 Z: 44 |
A: 18 B: 19 Z: 20 |
A: 33 B: 34 Z: 35 |
A: 36 B: 37 Z: 38 |
EduCake | A: 42 B: 43 Z: 44 |
A: 18 B: 19 Z: 20 |
||
PLC | A: 0 B: 2 Z: 5 |
下面是 86Duino 编码器输入介面的规格:
- 32-bit 高速计数器,最大计数频率可达 25MHz
- 输入脚數位濾波功能
- 支援 Pulse/DIR、CW/CCW、A/B Phase 三种类型的增量编码器
- 支援 SSI 类型的绝对式编码器
- 支援硬体 PWM 脉波捕捉功能,解析度可达 10ns
- 支援位置比较功能
Functions
- begin()
- end()
- write()
- read()
- readNanoseconds()
- indexRead()
- directionRead()
- pulseIn()
- pulseInNanoseconds()
- setComparator()
- setDigitalFilter()
- setInputPolarity()
- setIndexReset()
- setRange()
- attachInterrupt()
- detachInterrupt()
注:为了让 Encoder 函式库更容易上手,我们在 API 提供的功能性上做了相当程度的简化,上面 API 尚未充份利用 86Duino 硬体内建的编码器介面之全部功能;若您对开发 86Duino 编码器介面完整功能的函式库有兴趣,您将需要参阅 Vortex86EX Motion-Control Module 的 datasheet,请来信向 soc@dmp.com.tw 洽询。
The text of the 86Duino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.