8/17/2019 Programming Used 4
1/35
#defne FP 5000000
//===========skps protocol==============//
#defne p_select 0#defne p_joyl 1
#defne p_joyr 2
#defne p_start 3
#defne p_up 4
#defne p_rigt 5
#defne p_do!n "
#defne p_let $
#defne p_l2 %
#defne p_r2 &
#defne p_l1 10
#defne p_r1 11
#defne p_triangle 12
#defne p_circle 13
#defne p_cross 14
#defne p_s'uare 15
#defne p_joy_l( 1"
#defne p_joy_ly 1$
#defne p_joy_r( 1%
#defne p_joy_ry 1&
#defne p_joy_lu 20
#defne p_joy_ld 21
#defne p_joy_ll 22
#defne p_joy_lr 23
#defne p_joy_ru 24
#defne p_joy_rd 25
#defne p_joy_rl 2"
#defne p_joy_rr 2$
#defne p_con_status 2%
8/17/2019 Programming Used 4
2/35
#defne p_)otor1 2&
#defne p_)otor2 30
//=======================================//
*oidinit_+,-*oid.*oidinit_P-*oid.
*oidcange_pin-*oid.
//====unction )ecanu) using saertoot====//
*oid)ecanu)_or!ard-unsigned int ) unsigned int).
*oid)ecanu)_re*erse-unsigned int ) unsigned int).
*oid)ecanu)_let-unsigned int ) unsigned int).
*oid)ecanu)_rigt-unsigned int ) unsigned int).
*oid )ecanu)_45-unsigned int ) unsigned int).
*oid )ecanu)_135-unsigned int ) unsigned int).
*oid )ecanu)_225-unsigned int ) unsigned int).
*oid )ecanu)_315-unsigned int ) unsigned int).
*oid)ecanu)_6-unsigned int ) unsigned int).
*oid)ecanu)_66-unsigned int ) unsigned int).
*oid )ecanu)_turn1-unsigned int ) unsigned int).
//====unction )ecanu) using relay====//
*oid)ecanu)_relay_or!ard -*oid.
*oid)ecanu)_relay_re*erse -*oid.
*oid)ecanu)_relay_rigt -*oid.
*oid)ecanu)_relay_let -*oid.
*oid)ecanu)_relay_6 -*oid.
*oid)ecanu)_relay_66 -*oid.
*oidsp_relay_)a(-*oid. //unction speed )a(/nor)al/slo!
*oidsp_relay_slo!-*oid.
*oidsp_relay_nor)al-*oid.
*oidte)ak -*oid.
//====skps====//
*oiduart_send-unsigned car data.
unsigned car uart_rec-*oid.
8/17/2019 Programming Used 4
3/35
unsigned car skps-unsigned car data.
*oid init_uart2-*oid.
//====unction ta)aan====//
*oid delay-unsigned long i.*oidled_linking-*oid.
unsigned car s1
unsigned car s1
unsigned car s2
unsigned car s2
unsignedint static ( = 30
unsignedint static y = 55
int )ain-*oid.
7
89:8isale
init_+,-.
9+;;
8/17/2019 Programming Used 4
4/35
!ile-1.
7
8/17/2019 Programming Used 4
5/35
8/17/2019 Programming Used 4
6/35
8/17/2019 Programming Used 4
7/35
8/17/2019 Programming Used 4
8/35
A
else i-skps-p_joy_ld.C=50.
7
ser*o1=ser*o1D5i-ser*o1E=200.
7
ser*o1=200
A
A
else i-skps-p_joy_lu.C=50.
7
ser*o1=ser*o15
i-ser*o1C=400.
7
ser*o1=400
A
A
else i-skps-p_joyl.==0.
7
ser*o1=240
A
else i-skps-p_joy_rl.C=50.
7
ser*o2=ser*o25
i-ser*o1C=250.
7
ser*o2=250
A
A
else i-skps-p_joy_rr.C=50.
7
8/17/2019 Programming Used 4
9/35
ser*o2=ser*o2D5
i-ser*o1E=200.
7
ser*o2=200 A
A
else i-skps-p_cross.==0.
7
8/17/2019 Programming Used 4
10/35
*oidinit_+,-*oid.
7
//================:
8/17/2019 Programming Used 4
11/35
9+:JitsH9+:J13 = 0
9+:BitsH9+:B3 = 0
//12P+? +/0 9+:@itsH9+:@12 = 0 //9+;;2=0
9>3=0
9>4=0
//=================+?+9+G+L< 9, L
8/17/2019 Programming Used 4
12/35
P96,?2itsHP6I8+K=" //001 = 8i*ideDyD"4
/MOOOOOOOOOOOOOOOOOOOOOOO P1 6onfgurationOOOOOOOOOOOOOOOOOOOOOOOOOOOOM/
+,6,?1itsHP
8/17/2019 Programming Used 4
13/35
G9893 = "4 /M 8eadti)e setting M/
P@G:
8/17/2019 Programming Used 4
14/35
89" = "4 /M 8eadti)e setting M/
G989" = "4 /M 8eadti)e setting M/
P@G:
8/17/2019 Programming Used 4
15/35
P,1itsHP"$=3 //G92D9> 00 0011
P,1itsHP""=2$ //G93D9> 01 1011
P,0itsHP"5=2& //G94D9> 01 1101A
*oid init_uart2-*oid.
7
2:9GitsH>+:+P=5
2:9GitsH,+F = 0
++< = 0
2,8
8/17/2019 Programming Used 4
16/35
// skps unction -read and !rite data to P:2.
//=======================================================================
unsigned car skps-unsigned car data. //unction to read utton and
joystick
7
uart_send-data.
returnuart_rec-.
A
*oid delay-unsigned long i.
7
or-iC0iDD.
7A
A
*oidled_linking-*oid.
7
8/17/2019 Programming Used 4
17/35
s2 = "4 D ) (
s2 = 1&2 D ) (
49>
8/17/2019 Programming Used 4
18/35
*oid)ecanu)_re*erse-unsigned int ) unsigned int).
7
i-skps-p_triangle.==0.
7 s1 = "4 D ) (
s1 = 1&2 D ) (
39>
8/17/2019 Programming Used 4
19/35
s2 = "4 )
s2 = 1&2 )
49>
8/17/2019 Programming Used 4
20/35
49>
8/17/2019 Programming Used 4
21/35
s1 = "4 ) Dy
s1 = 1&2 D ) y
39>
8/17/2019 Programming Used 4
22/35
s2 = "4 D ) (
s2 = 1&2
49>
8/17/2019 Programming Used 4
23/35
*oid )ecanu)_135-unsigned int ) unsigned int).
7
i-skps-p_triangle.==0.
7 s1 = "4
s1 = 1&2 ) D(
39>
8/17/2019 Programming Used 4
24/35
s2 = "4
s2 = 1&2 D )
49>
8/17/2019 Programming Used 4
25/35
49>
8/17/2019 Programming Used 4
26/35
s1 = "4
s1 = 1&2 D ) y
39>
8/17/2019 Programming Used 4
27/35
s2 = "4 D ) (
s2 = 1&2 ) D(
49>
8/17/2019 Programming Used 4
28/35
*oid)ecanu)_6-unsigned int ) unsigned int).
7
i-skps-p_triangle.==0.
7 s1 = "4 ) D(
s1 = 1&2 D ) (
39>
8/17/2019 Programming Used 4
29/35
s2 = "4 )
s2 = 1&2 D )
49>
8/17/2019 Programming Used 4
30/35
8/17/2019 Programming Used 4
31/35
A
*oid)ecanu)_relay_re*erse -*oid.
7 1G=0 //ack!ard
1B=1
// sp1=(
2G=1 //ack!ard
2B=0
// sp2=y
3G=0 //ack!ard
3B=1
// sp3=(
4G=1 //ack!ard
4B=0
// sp4=y
sp_relay_nor)al-.
A
*oid)ecanu)_relay_let -*oid.
7
1G=0 //ack!ard
1B=1
// sp1=(
2G=0 //ack!ard
2B=1
// sp2=y
3G=1 //or!ard
3B=0
// sp3=(
4G=1 //or!ard
4B=0
8/17/2019 Programming Used 4
32/35
// sp4=y
sp_relay_nor)al-.
A
*oid)ecanu)_relay_rigt -*oid.
7
1G=1 //or!ard
1B=0
// sp1=(
2G=1 //or!ard
2B=0
// sp2=y
3G=0 //ack!ard
3B=1
// sp3=(
4G=0 //ack!ard
4B=1
// sp4=y
sp_relay_nor)al-.
A
*oid)ecanu)_relay_6 -*oid.
7
1G=1 //or!ard
1B=0
// sp1=(
2G=1 //or!ard
2B=0
// sp2=y
3G=1 //or!ard
3B=0
// sp3=(
8/17/2019 Programming Used 4
33/35
4G=1 //or!ard
4B=0
// sp4=y
sp_relay_nor)al-.A
*oid)ecanu)_relay_66 -*oid.
7
1G=0 //or!ard
1B=1
// sp1=(
2G=0 //or!ard
2B=1
// sp2=y
3G=0 //or!ard
3B=1
// sp3=(
4G=0 //or!ard
4B=1
// sp4=y
sp_relay_nor)al-.
A
*oidsp_relay_nor)al-*oid.
7
i-skps-p_triangle.==0.
7
sp_relay_)a(-.
A
else i-skps-p_s'uare.==0.
7
sp_relay_slo!-.
8/17/2019 Programming Used 4
34/35
A
else
7
sp1=2000 sp2=2000
sp3=2000
sp4=2000
A
A
*oidsp_relay_slo!-*oid.
7
sp1=500
sp2=500
sp3=500
sp4=500
A
*oidsp_relay_)a(-*oid.
7
sp1=2500
sp2=2500
sp3=2500
sp4=2500
A
*oidte)ak-*oid.
7
9+;;
8/17/2019 Programming Used 4
35/35
9+;;