Go to Post I love the smell of burning silicon in the morning. - Al Skierkiewicz [more]
Home
Go Back   Chief Delphi > Old Forum Archives > 2000
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
 
 
Thread Tools Rate Thread Display Modes
Prev Previous Post   Next Post Next
  #6   Spotlight this post!  
Unread 23-06-2002, 22:23
archiver archiver is offline
Forum Archival System
#0047 (ChiefDelphi)
 
Join Date: May 2001
Location: Pontiac, MI
Posts: 21,214
archiver has a reputation beyond reputearchiver has a reputation beyond reputearchiver has a reputation beyond reputearchiver has a reputation beyond reputearchiver has a reputation beyond reputearchiver has a reputation beyond reputearchiver has a reputation beyond reputearchiver has a reputation beyond reputearchiver has a reputation beyond reputearchiver has a reputation beyond reputearchiver has a reputation beyond repute
Re: please explain more... - the single formula version

Posted by Jerry Eckert.

Engineer from Looking for a team in Raleigh, NC sponsored by .

Posted on 3/15/2000 10:13 PM MST


In Reply to: Re: please explain more... - Expanded Response posted by Jerry Eckert on 3/15/2000 9:43 PM MST:



In my previous reply I used two formulas to scale the joystick input: one for forward and one for reverse. This can also be accomplished with a single formula:

p1_yfilt = ((p1_yfilt/n) + (127-(127/n))) min 0 max 254

where 'n' is the scale factor (e.g., '2' for 1/2 speed; '3' for 1/3 speed, etc.)

: :
: : : As for losing part of our range, when I attempted to scale down the drive train output to 50% of the joystick value in order to create our 'turbo boost' function, using the code shown below:
: : : (for forward)
: : : p1_yfilt = (p1_yfilt)/2 min 128 max 254
: : : (for reverse)
: : : p1_yfilt = (p1_yfilt*3)/2 min 0 max 126

: : : in one direction, i would lose all output unless the 'turbo' function was on, and in the other, it would always act as if the turbo was turned on.

: : I don't have the PBASIC manual handy, but it looks like the problem might be that the precedence of min/max is higher than division. In other words, I suspect PBASIC evaluated your statements as:

: : p1_yfilt = (p1_yfilt)/(2 min 128 max 254), and
: : p1_yfilt = (p1_yfilt*3)/(2 min 0 max 126)

: : Try rewriting them as follows:

: : p1_yfilt = (p1_yfilt/2) min 128 max 254, and
: : p1_yfilt = ((p1_yfilt*3)/2) min 0 max 126

: Let me try this again... (I should know better than to try to do this stuff when I've been sitting in front of a computer for 48+ hours. )

: The min/max precedence MAY be the problem; if it isn't, the scaling formulas are also wrong.

: In forward: (.le. = less than/equal; .ge. = greater than/equal)

: Before scaling, 128 .ge. p1_yfilt .le. 254
: 64 .ge. p1_yfilt/2 .le. 127

: Therefore, regardless of the input value, the scaled p1_yfilt will be forced to 128 (no output) by the MIN.

: Reverse:

: Before scaling: 0 .ge. p1_yfilt .le 126
: 0 .ge. p1_yfilt*3/2 .le. 189

: For reverse you should get some output, but the stick range is going to be heavily biased towards neutral output after the MIN/MAX are applied.

: I'd do something like this (please excuse any syntax errors - it's been a year since I've programmed PBASIC):

: LOOKDOWN p1_yfilt, (lt)[127,128,255],index ('(lt)' is less than sign)
: BRANCH index,[rev,neutral,fwd]
: REV:
: p1_yfilt = (126-((126-p1_yfilt)/2)) min 0 max 126
: goto common
: NEUTRAL:
: p1_yfilt = 127
: goto common
: FWD:
: p1_yfilt = (128+((p1_yfilt-128)/2)) min 128 max 254
: COMMON:

: If the LOOKUP function will accept formulas in the value list, all of the above starting at the BRANCH can be replaced by:

: LOOKUP index,[((126-((126-p1_yfilt)/2)) min 0 max 126), 127, ((128+((p1_yfilt-128)/2)) min 128 max 254)]

: If you want a dead zone around the neutral joystick position, replace the LOOKDOWN with:

: LOOKDOWN p1_yfilt,(lt)[127-dead_size, 128+dead_size, 255]

: : Jerry


__________________
This message was archived from an earlier forum system. Some information may have been left out. Start new discussion in the current forums, and refer back to these threads when necessary.
 


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Battlebots I.Q.- A serious threat to FIRST or a half thought up cheep copy? Joe Matt General Forum 75 17-10-2005 20:43
Fried program slots? Jeff Waegelin Programming 18 19-03-2003 18:08
Anyone looking for more program space? archiver 2001 13 24-06-2002 02:20
robot control emulator for default or other program CharlieWilken Programming 26 24-02-2002 02:36
control program looping??? ctartist236 Programming 1 08-02-2002 10:09


All times are GMT -5. The time now is 18:59.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi