Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- PPR = 1440 * 4 # decoder position steps per revolution
- # update position state (absolute position mod 2**32) and determine relative position change
- # input: new_position
- # state: position
- # output: position_delta
- position_delta = ( new_position - position ) & 0xffffffff
- position_delta |= -( position_delta & 0x80000000 )
- position = new_position
- # (option 1) convert relative position change to relative change in angle
- # input: position_delta
- # output: angle_delta
- angle_delta = position_delta * 360 / PPR
- # (option 2) use relative position change to track absolute angle
- # input: position_delta
- # state: position_mod_PPR
- # output: angle
- position_mod_PPR = ( position_mod_PPR + position_delta ) % PPR
- angle = position_mod_PPR * 360 / PPR
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement