Here ya go ski. Is this better ...Still compiles.Code::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :DeadBandX CON 10 ; center mechanical Dead Area : :DeadBandY CON 5 : :JoyX VAR BYTE ; A/D values from joystick : :JoyY VAR BYTE : :TrimX VAR BYTE : :TrimY VAR BYTE : :Xcorr VAR WORD ; corrected values (x-128) : :Ycorr VAR WORD ; puts center at 0,0 : :Left VAR WORD ; Left Track : :Right VAR WORD ; Right Track : :LeftDir VAR BIT ; Tread directions 1 = backwards : :RightDir VAR BIT : : : :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :Main: : : ADCIN 0, JoyX ; get Joystick values : : ADCIN 1, JoyY : : ADCIN 2, TrimX ; Joystick Center trims : : ADCIN 3, TrimY ; set to 128 if not used : : : : Xcorr = JoyX - 128 + (TrimX >> 3) - 16 ; adjust center position to 0: : Ycorr = JoyY - 128 + (TrimY >> 3) - 16 : : IF ABS(Xcorr) < DeadBandX THEN Xcorr = 0 ; center deadband : : IF ABS(Ycorr) < DeadBandY THEN Ycorr = 0 ; : : : : Left = Ycorr + Xcorr ; Mix Tread speeds : : Right = Ycorr - Xcorr : : : : LeftDir = Left.15 ; Tread Direction : : RightDir = Right.15 ; 1 = backwards : : : : Left = ABS(Left) ; make values positive : : Right = ABS(Right) : : : : if Left > 127 then Left = 127 ; Clamp max outputs : : if Right > 127 then Right = 127 ; : : : : ; Drive motors here : : ; LeftDir indicates the direction of the Left tread : : ; Left is the Speed of the motor 0 - 127 : : ; Same for Right Track : :GOTO Main : ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Bookmarks