描述 功能与 pulseIn() 相同,但回传值的单位是 ns(Nanosecond)。最长回传的宽度约 4.2 秒。 注意:此函式只可在 PWM 脉波捕捉模式下使用。另外,此函式不能和同 Encoder 函式库内的 attachInterrupt() 共用,在用 attachInterrupt() 挂载 ISR 后,呼叫 pulseInNanoseconds() 是没作用的。 语法 Enc0.pulseInNanoseconds(pin, state) Enc0.pulseInNanoseconds(pin, state, timeout) Enc1.pulseInNanoseconds(pin, state) Enc1.pulseInNanoseconds(pin, state, timeout) Enc2.pulseInNanoseconds(pin, state) Enc2.pulseInNanoseconds(pin, state, timeout) Enc3.pulseInNanoseconds(pin, state) Enc3.pulseInNanoseconds(pin, state, timeout) 参数 Enc0、Enc1、Enc2、Enc3:分别对应 ENC0、ENC1、ENC2、ENC3 编码器介面。 pin:指定要读取脉冲的针脚,0 指定针脚 A、1 指定针脚 B、2 指定针脚 Z(其它数值没有作用)。 state:要读取的脉冲型态,HIGH 或 LOW […]
描述 设定 A、B、Z 针脚的信号极性。例如:Pulse/DIR 模式下,设定 A 脚极性为 LOW,代表硬体会将 A 脚的低电位视为 HIGH,高电位视为 LOW。 此函式只可在 Pulse/DIR、CW/CCW、A/B Pulse 工作模式下使用。 语法 Enc0.setInputPolarity(polA, polB, polZ) Enc1.setInputPolarity(polA, polB, polZ) Enc2.setInputPolarity(polA, polB, polZ) Enc3.setInputPolarity(polA, polB, polZ) 参数 Enc0、Enc1、Enc2、Enc3:分别对应 ENC0、ENC1、ENC2、ENC3 编码器介面。 polA:值为 HIGH 或 LOW。输入 HIGH,代表将 A 脚的高电位视为 HIGH,低电位视为 LOW。输入 LOW,代表将 A 脚的高电位视为 LOW,低电位视为 HIGH。 polB:值为 HIGH 或 LOW。输入 HIGH,代表将 B 脚的高电位视为 HIGH,低电位视为 […]
描述 开启 A、B、Z 针脚的数位滤波功能,可用于滤除指定宽度以下的杂讯。 注意:在 PWM 脉波捕捉模式下,此函式只能在呼叫 Encoder 函式库内的 attachInterrupt() 和 pulseIn()、pulseInNanoseconds 前使用。 语法 Enc0.setDigitalFilter(val) Enc1.setDigitalFilter(val) Enc2.setDigitalFilter(val) Enc3.setDigitalFilter(val) 参数 Enc0、Enc1、Enc2、Enc3:分别对应 ENC0、ENC1、ENC2、ENC3 编码器介面。 val:要滤除的杂讯最大宽度。(unsigned long 型别,单位:10 ns) 回传 无回传值 范例 See also - begin() - read() 函式库参考主页面 The text of the 86Duino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the […]
描述 设定要触发 index 讯号的中断事件(即当编码器介面的 Z pin 变为 HIGH 时,触发中断)。此函式只可在 Pulse/DIR、CW/CCW、A/B Pulse 工作模式下使用。 注意:呼叫此函式将同时启动 index reset 功能,即当 index 讯号发生时(即 Z pin 变为 HIGH),硬体自动将编码器计数值清 0。 语法 Enc0.setIndexReset() Enc0.setIndexReset(condition) Enc1.setIndexReset() Enc1.setIndexReset(condition) Enc2.setIndexReset() Enc2.setIndexReset(condition) Enc3.setIndexReset() Enc3.setIndexReset(condition) 参数 Enc0、Enc1、Enc2、Enc3:分别对应 ENC0、ENC1、ENC2、ENC3 编码器介面。 condition:true 或 false。如果要启动 index 讯号的中断事件,则设定 true,反之则设定 false。(预设值是 true) 回传 无回传值 范例 设定 ENC0 为 A/B Pulse,印出旋转编码器所转的圈数以及读到的计数器数值。(假设 A、B、Z 三条线皆有接上。) See […]
描述 设定比较器中断的触发计数值。当编码器计数器计数到所设定的值时,就会触发一次中断事件。此函式只可在 Pulse/DIR、CW/CCW、A/B Pulse 工作模式下使用。 语法 Enc0.setComparator(val) Enc0.setComparator(val, condition) Enc1.setComparator(val) Enc1.setComparator(val, condition) Enc2.setComparator(val) Enc2.setComparator(val, condition) Enc3.setComparator(val) Enc3.setComparator(val, condition) 参数 Enc0、Enc1、Enc2、Enc3:分别对应 ENC0、ENC1、ENC2、ENC3 编码器介面。 val:触发比较器中断的计数值。(unsigned long 型别) condition:true 或 false。如果要启动中断事件,则设定 true,反之则设定 false。(预设值是 true) 回传 无回传值 范例 设定 ENC0 为 A/B Pulse,印出旋转编码器所转的圈数以及读到的计数器数值。(假设 A、B、Z 三条线皆有接上。) See also - attachInterrupt() - read() - setIndexReset() 函式库参考主页面 The text of the 86Duino […]
描述 卸载编码器介面的中断服务函式。 语法 Enc0.detachInterrupt() Enc1.detachInterrupt() Enc2.detachInterrupt() Enc3.detachInterrupt() 参数 Enc0、Enc1、Enc2、Enc3:分别对应 ENC0、ENC1、ENC2、ENC3 编码器介面。 回传 无回传值 See also - attachInterrupt() 函式库参考主页面 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.
描述 挂载编码器介面的中断服务函式。 在不同工作模式下,可以触发中断的条件也不同: Pulse/DIR、CW/CCW、A/B Pulse 模式:有 index 讯号中断(由 setIndexReset() 设定)、比较器中断(由 setComparator() 设定)。 PWM 脉波捕捉模式:有脉波由 LOW 变 HIGH 的边缘触发中断与由 HIGH 变 LOW 的边缘触发中断。 SSI 模式:没有中断触发条件。 语法 Enc0.attachInterrupt(isr) Enc1.attachInterrupt(isr) Enc2.attachInterrupt(isr) Enc3.attachInterrupt(isr) 参数 Enc0、Enc1、Enc2、Enc3:分别对应 ENC0、ENC1、ENC2、ENC3 编码器介面。 isr:中断服务函式。此函式必须有一个 int 型别的参数,用来接收触发中断的事件类型,共有以下 8 种: INTR_COMPARE:代表发生比较器中断事件。 INTR_INDEX:代表发生index 讯号中断事件。 INTR_A_PULSE_LOW:代表 A 针脚上发生脉波由 LOW 变 HIGH 的边缘触发中断事件。 INTR_A_PULSE_HIGH:代表 A 针脚上发生脉波由 HIGH 变 LOW 的边缘触发中断事件。 […]
描述 读取 pin 脚上的脉冲(高或低电位)持续时间。举个例子,如果 state 输入值是 HIGH,pulseIn() 会等 pin 脚上的电位变成 HIGH 之后开始计时,等到又变回 LOW 才停止;之后会回传脉冲的持续时间,单位是微秒,最长量测宽度约 71 分钟。假如在指定的时间内没有出现任何脉冲,则会放弃读取并回传 0。 注意:此函式只可在 PWM 脉波捕捉模式下使用。另外,此函式不能和同 Encoder 函式库内的 attachInterrupt() 共用,在用 attachInterrupt() 挂载 ISR 后,呼叫 pulseIn() 是没作用的。 语法 Enc0.pulseIn(pin, state) Enc0.pulseIn(pin, state, timeout) Enc1.pulseIn(pin, state) Enc1.pulseIn(pin, state, timeout) Enc2.pulseIn(pin, state) Enc2.pulseIn(pin, state, timeout) Enc3.pulseIn(pin, state) Enc3.pulseIn(pin, state, timeout) 参数 Enc0、Enc1、Enc2、Enc3:分别对应 ENC0、ENC1、ENC2、ENC3 编码器介面。 […]
描述 此函式只能在 PWM 脉波捕捉模式下使用,功能和 read() 相同,但回传 ns (Nanosecond)单位的脉波宽度。 语法 Enc0.readNanoseconds() Enc1.readNanoseconds() Enc2.readNanoseconds() Enc3.readNanoseconds() 参数 Enc0、Enc1、Enc2、Enc3:分别对应 ENC0、ENC1、ENC2、ENC3 编码器介面。 回传 回传脉波 LOW 或 HIGH 的宽度(单位:ns),最长回传宽度约 4.2 秒。注意:readNanoseconds() 只能在 ISR 函式内被呼叫,如果在其它地方被呼叫,将总是回传 0。 范例 See also - begin() - attachInterrupt() 函式库参考主页面 The text of the 86Duino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in […]
描述 回传 Z 针脚上的电位。此函式只可在 Pulse/DIR、CW/CCW、A/B Pulse 工作模式下使用。 语法 Enc0.indexRead() Enc1.indexRead() Enc2.indexRead() Enc3.indexRead() 参数 Enc0、Enc1、Enc2、Enc3:分别对应 ENC0、ENC1、ENC2、ENC3 编码器介面。 回传 LOW 或 HIGH 范例 See also - begin() - setIndexReset() 函式库参考主页面 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.