Advertisement
Guest User

Untitled

a guest
Nov 9th, 2021
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.75 KB | None | 0 0
  1. PPR = 1440 * 4   # decoder position steps per revolution
  2.  
  3.  
  4. # update position state (absolute position mod 2**32) and determine relative position change
  5. # input: new_position
  6. # state: position
  7. # output: position_delta
  8. position_delta = ( new_position - position ) & 0xffffffff
  9. position_delta |= -( position_delta & 0x80000000 )
  10. position = new_position
  11.  
  12. # (option 1) convert relative position change to relative change in angle
  13. # input: position_delta
  14. # output: angle_delta
  15. angle_delta = position_delta * 360 / PPR
  16.  
  17. # (option 2) use relative position change to track absolute angle
  18. # input: position_delta
  19. # state: position_mod_PPR
  20. # output: angle
  21. position_mod_PPR = ( position_mod_PPR + position_delta ) % PPR
  22. angle = position_mod_PPR * 360 / PPR
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement