|
Алгоритм вычисления позиции
|
|||
---|---|---|---|
#18+
У меня 16-битный энкодер. По нему я знаю позицию мотора. Проблема когда счетчик энкодера делает rollover. Допустим энкодер считает вверх - первое чтение энкодера 65530, второе 10 – то есть произошел rollover и тогда позиция = 65535 + 10. Энкодер считает вниз - первое чтение энкодера 10, второе 65530 - и тогда позиция = (65535-65530) + 10. Но у меня почему то не получается построить правильный алгоритм. При смене направления UP-DOWN, DOWN-U что то ломается. Вот пример симуляции в шарпе Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 12:31 |
|
Алгоритм вычисления позиции
|
|||
---|---|---|---|
#18+
Вроде мне удалось найти правильный алгоритм Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 13:13 |
|
|
start [/forum/topic.php?fid=16&fpage=12&tid=1340026]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
78ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 175ms |
0 / 0 |