Lynxmotion Tech Support

www.lynxmotion.com
It is currently Wed May 22, 2013 5:25 am

All times are UTC - 6 hours [ DST ]




Post new topic Reply to topic  [ 1 post ] 
Author Message
PostPosted: Mon Dec 12, 2011 11:12 am 
Offline
Roboteer

Joined: Tue Oct 04, 2011 9:10 am
Posts: 3
Hello all,
sorry about this newb question but this is my first time i am building a robot and i dont know who to code the ps2_dualshock program to run mor than one servo. any help on this would be great.
i am using a basic atom pro 28 with a bot board 2 with IDE V. 5



Code:
;[PS2 Controller Constants]
PS2_DAT             con P12      ;PS2 Controller DAT (Brown)
PS2_CMD             con P13      ;PS2 controller CMD (Orange)
PS2_ATT             con P14      ;PS2 Controller SEL (Blue)
PS2_CLK             con P15      ;PS2 Controller CLK (White)

PS2_MODE             con $79
;--------------------------------------------------------------------

;[Ps2 Controller Variables]
PS2_data             var Byte(18)
PS2_lastbutton         var Byte(2)
PS2_work            var Byte
PS2_Index            var byte
;--------------------------------------------------------------------

main
   gosub ControlInput[PS2_data(16),PS2_data(17)]
   
   serout s_out,i38400,[0," DPad-Left: ",bin1 PS2_data(0).bit7\1," ",dec PS2_data(7),13]
   serout s_out,i38400,[" DPad-Down: ",bin1 PS2_data(0).bit6\1," ",dec PS2_data(9),13]
   serout s_out,i38400,[" DPad-Right: ",bin1 PS2_data(0).bit5\1," ",dec PS2_data(6),13]
   serout s_out,i38400,[" DPad-Up: ",bin1 PS2_data(0).bit4\1," ",dec PS2_data(8),13]
   
   serout s_out,i38400,["Right XAxis: ",sdec 128-PS2_data(2),13]
   serout s_out,i38400,["Right YAxis: ",sdec 128-PS2_data(3),13]
   serout s_out,i38400,[" Left XAxis: ",sdec 128-PS2_data(4),13]
   serout s_out,i38400,[" Left YAxis: ",sdec 128-PS2_data(5),13]
   
   serout s_out,i38400,[" Start: ",bin1 PS2_data(0).bit3\1,13]
   serout s_out,i38400,[" RAxis(R3): ",bin1 PS2_data(0).bit2\1,13]
   serout s_out,i38400,[" LAxis(L3): ",bin1 PS2_data(0).bit1\1,13]
   serout s_out,i38400,[" Select: ",bin1 PS2_data(0).bit0\1,13]
   
   serout s_out,i38400,[" Square: ",bin1 PS2_data(1).bit7\1," ",dec PS2_data(13),13]
   serout s_out,i38400,[" Cross: ",bin1 PS2_data(1).bit6\1," ",dec PS2_data(12),13]
   serout s_out,i38400,[" Circle: ",bin1 PS2_data(1).bit5\1," ",dec PS2_data(11),13]
   serout s_out,i38400,[" Triangle: ",bin1 PS2_data(1).bit4\1," ",dec PS2_data(10),13]
   
   serout s_out,i38400,[" R1: ",bin1 PS2_data(1).bit3\1," ",dec PS2_data(15),13]
   serout s_out,i38400,[" L1: ",bin1 PS2_data(1).bit2\1," ",dec PS2_data(14),13]
   serout s_out,i38400,[" R2: ",bin1 PS2_data(1).bit1\1," ",dec PS2_data(17),13]
   serout s_out,i38400,[" L2: ",bin1 PS2_data(1).bit0\1," ",dec PS2_data(16),13]
   
   pause 100
   
   goto main
   
;usage:   gosub ControlInput[motorww,motoryy]
 motorww = motorww power level
 motoryy = motoryy power level
   
PS2_motorww var byte
PS2_motoryy var byte
ControlInput [PS2_motorww,PS2_motoryy]
   high PS2_CLK
ControlInput_Retry
   PS2_lastbutton(0) = PS2_data(1)
   PS2_lastbutton(1) = PS2_data(2)
   low PS2_ATT
   shiftout PS2_CMD,PS2_CLK,LSBPRE,[$1\8]
   shiftin PS2_DAT,PS2_CLK,LSBPOST,[PS2_work\8]
   high PS2_ATT
   pause 1
 
   if PS2_work <> PS2_MODE THEN
      low PS2_ATT
      shiftout PS2_CMD,PS2_CLK,LSBPRE,[$1\8,$43\8,$0\8,$1\8,$0\8] ;enter config mode
      high PS2_ATT
      pause 1

      low PS2_ATT
      shiftout PS2_CMD,PS2_CLK,LSBPRE,[$01\8,$44\8,$00\8,$01\8,$03\8,$00\8,$00\8,$00\8,$00\8] ;set and lock analog mode
      high PS2_ATT
      pause 1

      low PS2_ATT
      shiftout PS2_CMD,PS2_CLK,LSBPRE,[$01\8,$4D\8,$00\8,$00\8,$01\8,$FF\8,$FF\8,$FF\8,$FF\8] ;Enable Vibration motors
      high PS2_ATT
      pause 1

      low PS2_ATT
      shiftout PS2_CMD,PS2_CLK,LSBPRE,[$01\8,$4F\8,$00\8,$FF\8,$FF\8,$03\8,$00\8,$00\8,$00\8] ;set 18byte reply
      high PS2_ATT
      pause 1

      low PS2_ATT
      shiftout PS2_CMD,PS2_CLK,LSBPRE,[$01\8,$43\8,$00\8,$00\8,$5A\8,$5A\8,$5A\8,$5A\8,$5A\8] ;exit config mode
      high PS2_ATT
      pause 1

      PS2_data(1) = 255,255
      
      goto ControlInput_Retry
   else
   
      low PS2_ATT
      shiftout PS2_CMD,PS2_CLK,LSBPRE,[$1\8,$42\8, $00\8]   
      shiftin PS2_DAT,PS2_CLK,LSBPOST,[PS2_data(0)\8, PS2_data(1)\8]
      high PS2_ATT
      low PS2_ATT
      shiftout PS2_CMD,PS2_CLK,LSBPRE,[$1\8,$42\8, $00\8,PS2_motorww\8,PS2_motoryy\8]
      shiftin PS2_DAT,PS2_CLK,LSBPOST,[PS2_data(2)\8, PS2_data(3)\8, PS2_data(4)\8, PS2_data(5)\8, |
                                 PS2_data(6)\8, PS2_data(7)\8, PS2_data(8)\8, PS2_data(9)\8, |
                                 PS2_data(10)\8, PS2_data(11)\8, PS2_data(12)\8, PS2_data(13)\8, |
                                 PS2_data(14)\8, PS2_data(15)\8, PS2_data(16)\8, PS2_data(17)\8]
      high PS2_ATT
   endif
   
return   


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 1 post ] 

All times are UTC - 6 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group