using n-bit math
result
ready v3
turns 23 f 489
33609 3664.3145
turns 23 f 486
33606 3663.9875
turns 23 f 484
33604 3663.7694
Code:Include "N-Bit_MATH.pbp" enc_new VAR BYTE bank0 enc_old VAR BYTE bank0 enc_counter VAR WORD bank0 Flag var BYTE bank0 tmp var byte[4] res var byte[4] tmp1 var byte[4] posn var WORD turns var word frac var WORD ; Set variable value @ startup Flag = 1 ;preset a value for testing enc_new = 0 enc_old= 0 enc_counter = 33609 ;preset a value for testing Main_Loop: if Flag = 1 then turns= enc_counter /1440 frac= enc_counter //1440 serout2 PORTa.0,84, [13,10,"turns ",#turns,9,"f ",#frac ] if frac then @ MOVE?CP 157000, _tmp @ MOVE?WP _frac, _tmp1 @ MATH_MUL _tmp1, _tmp, _res @ MOVE?CP 1440000, _tmp @ MATH_DIV _res, _tmp, _tmp1 @ MOVE?PW _tmp1, _posn @ MOVE?CP 144, _tmp @ MATH_DIV REG_Z, _tmp, _tmp1 @ MOVE?PW _tmp1, _frac endif posn=posn+turns*157 serout2 PORTa.0,84, [13,10,#enc_counter,9,dec4 posn,".",dec4 frac ] Flag = 0 endif goto Main_Loop end




Bookmarks