gpt4 book ai didi

c - 转动方向

转载 作者:太空宇宙 更新时间:2023-11-04 06:37:49 25 4
gpt4 key购买 nike

我怎样才能知道您必须转向哪个方向才能以最短的方式到达新的设定点?

我有一段控制步进电机的 Arduino 代码。使用编码器,我得到步进电机的位置值 0..2048。

现在我有一个设定点 200,我移动到 200,这应该是顺时针的。现在我在 200,我想去点 2000,这应该逆时针发生,因为这是最短的路。

我怎样才能有效地计算出我应该转向哪条路?

最佳答案

试试这个:

delta = (setpoint << 5) - (current_position << 5);
delta = delta >> 5;

这假设所有变量都是有符号的 16 位。您的步进器有一个在 2048 处“翻转”的计数,这与处理器的数学翻转方式相似但不同。通过向左移动五位,您可以将步进器翻转与 CPU 翻转对齐,一切正常。通过将结果移回原位,您可以获得移动步进器所需的计数数量 - 在带符号的值中,因此正数是一种方式,负数是另一种方式。

关于c - 转动方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12675164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com