Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   Programming joysticks (http://www.chiefdelphi.com/forums/showthread.php?t=24315)

NoRemorse 24-01-2004 17:17

Programming joysticks
 
On the new joysticks, there is a mini - milt-direction "d-pad" i guess you could call it. How do you prgram this, or can you even. I can't find it anywhere in the code

Dave Flowerday 24-01-2004 18:22

Re: Programming joysticks
 
Quote:

Originally Posted by NoRemorse
On the new joysticks, there is a mini - milt-direction "d-pad" i guess you could call it. How do you prgram this, or can you even. I can't find it anywhere in the code

It's called a "hat switch" and it'll show up as one of the analog joystick values to the robot controller. I can't remember if it appears as "Joystick Wheel" or "Joystick AUX" off the top of my head, though.

NoRemorse 24-01-2004 18:36

Re: Programming joysticks
 
well, the count of buttons on thejoistick does not equal the count of buttons in the program. and it is the odd man out.

FotoPlasma 24-01-2004 19:14

Re: Programming joysticks
 
The joystick's POV hat takes the place of the "pN_wheel", where N is the number of the joystick port you're using. I can only really speak for the joystick which I have right in front of me (the other is at my house, being used to play TIE Fighter :)), so YMMV. The two least significant bits of the value change too erratically to be of any use. Here's a listing of the values of the variable when the POV hat is in different positions:
Neutral: 001011xx
Up Left: 111111xx
Up: 111111xx
Up Right: 111111xx
Left: 011000xx
Right: 110010xx
Down Left: 101001xx
Down: 100101xx
Down Right: 110101xx

The x's take the place of the two least significant bits, which, as I said earlier, change randomly (at least with this single joystick).

Basically, if you can understand binary, you can take advantage of the POV hat for controlling your robot.

Hope this helps.

Smrtman5 27-01-2004 18:12

Re: Programming joysticks
 
I have two basic questions. First, can those old robot interfaces be programed for C or are they strictly the old stuff?

Second, does anyone have an old program with just the two joystick controls? All we want to do is hook up an old interface to a mock control board so we can make sure the trannys work.

(Note: Im the fabricator, the only thing i know about computers is how to break one)
Hopefully i can relay this answer to one of our more knowledgeable people. Thanks

Ryan M. 27-01-2004 20:31

Re: Programming joysticks
 
Quote:

Originally Posted by Smrtman5
I have two basic questions. First, can those old robot interfaces be programed for C or are they strictly the old stuff?

Do you mean the old robot controllers? If so, they can only do the old PBASIC stuff.

deltacoder1020 27-01-2004 21:21

Re: Programming joysticks
 
Quote:

Originally Posted by FotoPlasma
The joystick's POV hat takes the place of the "pN_wheel", where N is the number of the joystick port you're using. I can only really speak for the joystick which I have right in front of me
...
Neutral: 001011xx
Up Left: 111111xx
Up: 111111xx
Up Right: 111111xx
Left: 011000xx
Right: 110010xx
Down Left: 101001xx
Down: 100101xx
Down Right: 110101xx

our values for the joystick concur for the first 6 bits as well. (darn shame there is basically no difference between UL, U, and UR)

FotoPlasma 28-01-2004 05:51

Re: Programming joysticks
 
Quote:

Originally Posted by Smrtman5
Second, does anyone have an old program with just the two joystick controls? All we want to do is hook up an old interface to a mock control board so we can make sure the trannys work.

InnovationFirst has "Legacy Documentation" on their website. They have default code, written in PBASIC (for previous years' control systems), for both single and dual joystick driving. Here's a link to download those programs. They're listed under "PBASIC Code", but you will also need a copy of Parallax's computer program, in order to program your controller. Links are listed on that same website under "Programming Tools".

If you need any more assistance, feel free to ask.

Astronouth7303 28-01-2004 20:53

Re: Programming joysticks
 
So the bit masks are:
Code:

const unsigned char Hat_None = 0x2C;
const unsigned char Hat_Up = 0xFC;
const unsigned char Hat_Left = 0x60;
const unsigned char Hat_Right = 0xC0;
const unsigned char Hat_Down = 0x94;

//Unless values are off, Combos aren't OR'ed
const unsigned char Hat_Up_Left = 0xFC;
const unsigned char Hat_Up_Right = 0xFC;
const unsigned char Hat_Down_Left = 0xA4;
const unsigned char Hat_Down_Right = 0xD4;

This seems a little stupid, but that's life. :(

Chris Hleva 01-02-2004 23:59

Programming joysticks
 
I have a question, how could I add the right lines of code to make the POV hats work with the new C language this year? Amonst other things, where would I have to define them and map them to the right IO ports to work with the hex/bin input signal?

Ryan M. 02-02-2004 11:11

Re: Programming joysticks
 
Quote:

Originally Posted by FotoPlasma
Basically, if you can understand binary, you can take advantage of the POV hat for controlling your robot.

You also have to good at bit manipulation in C! :)

Joe Ross 02-02-2004 11:15

Re: Programming joysticks
 
Quote:

Originally Posted by Astronouth7303
So the bit masks are:
Code:

const unsigned char Hat_None = 0x2C;
const unsigned char Hat_Up = 0xFC;
const unsigned char Hat_Left = 0x60;
const unsigned char Hat_Right = 0xC0;
const unsigned char Hat_Down = 0x94;

//Unless values are off, Combos aren't OR'ed
const unsigned char Hat_Up_Left = 0xFC;
const unsigned char Hat_Up_Right = 0xFC;
const unsigned char Hat_Down_Left = 0xA4;
const unsigned char Hat_Down_Right = 0xD4;


Why not #define them, instead of taking up memory?

deltacoder1020 02-02-2004 12:45

Re: Programming joysticks
 
Quote:

Originally Posted by Chris Hleva
I have a question, how could I add the right lines of code to make the POV hats work with the new C language this year? Amonst other things, where would I have to define them and map them to the right IO ports to work with the hex/bin input signal?

example:
Code:

if( (p1_wheel & 0xC0) == 0xC0 )
{
    //hat control is pushed right
}
else if( (p1_wheel & 0xA4) == 0xA4 )
{
    //hat control is pushed down-left
}
...
et cetera
...

just use the bitwise AND function (&) to determine if the correct bits are set.

Chris Hleva 02-02-2004 16:59

Re: Programming joysticks
 
Thanks, that helped a lot. I am just starting out with C so i'm still a little sketchy with it.

deltacoder1020 02-02-2004 17:21

Re: Programming joysticks
 
no prob. if you want a review on the syntax of C, you could try the various guides in the whitepapers section, or the guide that I'm working on (see the thread in this forum titled "FIRST Programming Tutorial")


All times are GMT -5. The time now is 20:14.

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