Thanks for the info on the debounce. I still need to rap my head around it. got me confused. when just a little delay did the trick. 
I was able to controll a servo using the PS2 wireless controller 
[code]// Controlled Sweep
// Sweep servo Left using PAD left pad left or Square button
// Sweep servo rigth using PAD leftt pad right or Circle button
// Return to center using PAD leftt pad up or X button
#include <Servo.h>
#include <PS2X_lib.h> //V1.6 http://www.billporter.info/playstation-2-controller-arduino-library-v1-0/
#define PS2_DAT 6 // Borrowed from Kurt makes it easier to read
#define PS2_CMD 7
#define PS2_SEL 8
#define PS2_CLK 9
Servo MyServo ;
PS2X ps2x ;
int HornPos = 90; // Servo position set to center
int error = 0;
byte type = 0;
byte vibrate = 0;
void setup() {
Serial.begin(57600);
//setup pins and settings:
//GamePad(clock, command, attention, data, Pressures?, Rumble?)
//check for error
error = ps2x.config_gamepad(PS2_CLK,PS2_CMD,PS2_SEL,PS2_DAT, true, true);
MyServo.attach(12); // attaches the servo on pin 12 to the servo object
if(error == 0){
Serial.println(“Found Controller, configured successful”);
}
else if(error == 1){
Serial.println(“No controller found”);
}
else if(error == 2){
Serial.println(“Controller found but not accepting commands.”);
}
type = ps2x.readType();
switch(type) {
case 0:
Serial.println("Unknown Controller type");
break;
case 1:
Serial.println("DualShock Controller Found");
break;
case 2:
Serial.println("GuitarHero Controller Found");
break;
}
}
void loop(){
if(error == 1) //skip loop if no controller found
return;
else { //DualShock Controller
ps2x.read_gamepad(); //read controller and set large motor to spin at 'vibrate' speed
if(ps2x.Button(PSB_RED)){ //will be TRUE if button was JUST pressed
Serial.println("Circle just pressed");
++HornPos ;
MyServo.write(HornPos);
}
if(ps2x.Button(PSB_PINK)){ //will be TRUE if button was JUST released
Serial.println("Square just released");
--HornPos; // Rotate left one step
MyServo.write(HornPos);
}
if(ps2x.Button(PSB_BLUE)) { //will be TRUE if button was JUST pressed OR released
Serial.println("X just changed");
HornPos = 90; // Rotate to center
MyServo.write(HornPos);
}
if(ps2x.Button(PSB_PAD_RIGHT)){ //will be TRUE if button was JUST pressed
Serial.print("Right held this hard: ");
Serial.println(ps2x.Analog(PSAB_PAD_RIGHT), DEC);
++HornPos ;
MyServo.write(HornPos);
}
if(ps2x.Button(PSB_PAD_LEFT)){ //will be TRUE if button was JUST released
Serial.print("LEFT held this hard: ");
Serial.println(ps2x.Analog(PSAB_PAD_LEFT), DEC);
–HornPos; // Rotate left one step
MyServo.write(HornPos);
}
if(ps2x.Button(PSB_PAD_UP)) { //will be TRUE if button was JUST pressed OR released
Serial.print("Up held this hard: ");
Serial.println(ps2x.Analog(PSAB_PAD_UP), DEC);
HornPos = 90; // Rotate to center
MyServo.write(HornPos);
}
}
delay(20);
}[/code]