- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在对编码器进行采样,该样本的值在区间 [30, 230] 之间;我必须使用这个值来定义两个输出计数器变量(一个递增计数器和一个递减计数器)。
问题是,有时当发生翻转时,这意味着编码器从 230 传递到 30 或反之亦然,采样太慢,我会失去运动方向(逆时针或顺时针),这会导致错误的行为。
示例:
如果编码器位于 220 值并且我沿顺时针方向快速移动它,则我的下一个值例如是 100,这意味着该值通过 30(翻转):方向应该是顺时针.但软件认为我将编码器从 230 移动到 100,它给了我一个逆时针运动。
提醒一下,我无法提高采样速度,它是稳定的。
它处于实时环境中。
最佳答案
如果不能保证编码器在一个轮询周期内移动的范围不会超过一半,那么问题就无法解决。如果您假设它不会移动那么远,那么它是可以解决的 - 您只需假设两个轮询事件之间的移动是两个可能方向中最短。
您没有解释为什么编码器范围从非零开始,但如果您删除该偏移量并通过减去偏移量来处理 0 到 200 的范围,则算术更容易遵循(和编码)。
给定一个编码器读取函数uint8_t ReadEnc()
例如:
#define ENCODER_RANGE 200
#define ENCODER_OFFSET 30 // remove offset for range 0 to 200
static unsigned ccw_counter = 0 ;
static unsigned cw_counter = 0
static uint8_t previous_enc = ReadEnc() - ENCODER_OFFSET ;
uint8_t enc = ReadEnc() - ENCODER_OFFSET ;
signed enc_diff = enc - previous_enc ;
previous_enc = enc ;
// If absolute difference is greater then half the range
// assume that it rotated the opposite way.
if( enc_diff > ENCODER_RANGE / 2)
{
enc_diff = -(ENCODER_RANGE - enc_diff)
}
else if( enc_diff < -(ENCODER_RANGE / 2) )
{
enc_diff = (ENCODER_RANGE + enc_diff)
}
// Update counters
if( enc_diff < 0 )
{
// Increment CCW counter
ccw_counter -= enc_diff ;
}
else
{
// Increment CW counter
cw_counter += enc_diff ;
}
关于c - 管理编码器的值以了解编码器本身的方向(逆时针或顺时针),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36421876/
我正在 Eclipse 上学习 clojure(逆时针插件)。 当我在 Eclipse 中单击“运行”时(就像我用 Java 做的那样)我没有 只有控制台打开,但这个“REPL”窗口。为什么有必要 它
是否可以查看您在 Eclipse 中逆时针 REPL 中输入的内容的历史?就像按向上箭头或 ctrl-p 或其他各种在其他 repl 中起作用的东西一样? 谢谢! -菲利普 最佳答案 是的,很抱歉没有
在 Eclipse+Counterclock 中,当我想连接到 REPL 时,对话框告诉我可以通过 HTTP 使用 nREPL: 如何设置? 这是否以某种方式连接到 drawbridge ?尽管 le
我使用的是来自 WWDC 的 Apple CircleLayout 的略微修改版本:https://github.com/mpospese/CircleLayout . 我当前的代码在顶部绘制第一个元
我有一组可能形成凹多边形的无序顶点。现在我想按顺时针或逆时针顺序排列它们。 An answer here建议执行以下步骤: 找到多边形中心 计算角度 按角度排序点 这显然只适用于凸多边形,当点形成凹多
我想知道与 Emacs 相比,Eclipse 的逆时针插件有哪些限制。 Eclipse 不会提供哪些 Lisp(和 Clojure)魔法? - 更新 - 我知道 Emacs 会有更多功能、快捷方式、各
我是一名优秀的程序员,十分优秀!