Date post: | 06-Jul-2018 |
Category: |
Documents |
Upload: | mfaiz-rhamira |
View: | 219 times |
Download: | 0 times |
of 37
8/17/2019 Programming Used 2
1/37
#pragma confg ALTI2C1 = OFF // Alternate I2C pins or I2C1 (SDA1/SC1 pins areselecte! as t"e I/O pins or I2C1
#pragma confg ALTI2C2 = OFF // Alternate I2C pins or I2C2 (I2C2 mappe! toSDA2/SCL2 pins
// FICD
#pragma confg ICS = $%D1 // ICD Comm&nication C"annel Select 'its(Comm&nicate on $%C2 an! $%D2
#pragma confg )ST$)I = $F // )eset Target *ector Select 'it (De+ice ,ill o'tainreset instr&ction rom $rimar- .as"
#pragma confg TA%0 = OFF // TA% na'le it (TA% is !isa'le!
// FAS
#pragma confg A)$ = OFF // A&3iliar- Segment rite4protect 'it (A&3 Flas"ma- 'e ,ritten
#pragma confg A$L = OFF // A&3iliar- Segment Co!e4protect 'it (A&3 Flas"Co!e protect is !isa'le!
#pragma confg A$L = OFF // A&3iliar- Segment e- 'its (A&3 Flas" rite$rotection an! Co!e $rotection is Disa'le!
//==========================================================================================================
==========================================
//===LD===//
#!efne LD5)D LAT6'its7LAT68
#!efne LD5%)0 LAT6'its7LAT69
#!efne LD56IT LAT'its7LAT18
#!efne LD5L: LATF'its7LATF1;
//===SITC6===//
#!efne S1 $O)T6'its7)6<
#!efne S2 $O)T6'its7)61
//===>OTO)===//
#!efne ser+o1 $DC2 //S)*O 1
#!efne ser+o2 $DC8 //S)*O 2
#!efne >1A LAT%'its7LAT%9 //>OTO) ?
#!efne >1 LAT'its7LAT1;
8/17/2019 Programming Used 2
2/37
#!efne sp1 $DC9
#!efne >2A LAT%'its7LAT%< //>OTO) 8
#!efne >2 LAT%'its7LAT%@#!efne sp2 $DC? // ma3 2? $DC
#!efne >;A LAT'its7LAT< //>OTO) ;
#!efne >; LATA'its7LATA
#!efne sp; $DC;
#!efne >8A LAT'its7LAT //>OTO) 2
#!efne >8 LAT'its7LAT
#!efne sp8 $DC@
#!efne >?A LAT'its7LAT? //>OTO) 1
#!efne >? LAT'its7LAT1
#!efne sp? $DC1 //$DC8 t&Bar&nt&B ser+o1
#!efne >9A LAT'its7LAT; //>OTO) A0A0
#!efne >9 LAT'its7LAT8
//=======12$I0 I/O========//
#!efne T)I%%) LAT6'its7LAT612
//====================:A)T====================//
#!efne T; :;T)%
#!efne T8 :8T)%
//===========A:)AT==============//
#!efne )%*AL ((F$/A:D)AT/1941
#!efne A:D)AT 9
8/17/2019 Programming Used 2
3/37
#!efne F$ ?
//===========sBps protocol==============//
#!efne p5select
#!efne p5o-l 1#!efne p5o-r 2
#!efne p5start ;
#!efne p5&p 8
#!efne p5rig"t ?
#!efne p5!o,n 9
#!efne p5let @
#!efne p5l2 <
#!efne p5r2
#!efne p5l1 1
#!efne p5r1 11
#!efne p5triangle 12
#!efne p5circle 1;
#!efne p5cross 18
#!efne p5sE&are 1?
#!efne p5o-5l3 19
#!efne p5o-5l- 1@
#!efne p5o-5r3 1<
#!efne p5o-5r- 1
#!efne p5o-5l& 2
#!efne p5o-5l! 21
#!efne p5o-5ll 22
#!efne p5o-5lr 2;
#!efne p5o-5r& 28
#!efne p5o-5r! 2?
#!efne p5o-5rl 29
#!efne p5o-5rr 2@
#!efne p5con5stat&s 2<
#!efne p5motor1 2
8/17/2019 Programming Used 2
4/37
#!efne p5motor2 ;
//=======================================//
+oi!init5IO(+oi!
+oi!init5$>(+oi!+oi!c"ange5pin(+oi!
//====&nction mecan&m &sing sa'ertoot"====//
+oi!mecan&m5or,ar!(&nsigne! int mLG &nsigne! intm)
+oi!mecan&m5re+erse(&nsigne! int mLG &nsigne! intm)
+oi!mecan&m5let(&nsigne! int mLG &nsigne! intm)
+oi!mecan&m5rig"t(&nsigne! int mLG &nsigne! intm)
+oi! mecan&m58?(&nsigne! int mLG &nsigne! intm)
+oi! mecan&m51;?(&nsigne! int mLG &nsigne! intm)
+oi! mecan&m522?(&nsigne! int mLG &nsigne! intm)
+oi! mecan&m5;1?(&nsigne! int mLG &nsigne! intm)
+oi!mecan&m5C(&nsigne! int mLG &nsigne! intm)
+oi!mecan&m5CC(&nsigne! int mLG &nsigne! intm)
+oi! mecan&m5t&rn1(&nsigne! int mLG &nsigne! intm)
//====&nction mecan&m &sing rela-====//
+oi!mecan&m5rela-5or,ar! (+oi!
+oi!mecan&m5rela-5re+erse (+oi!
+oi!mecan&m5rela-5rig"t (+oi!
+oi!mecan&m5rela-5let (+oi!
+oi!mecan&m5rela-5C (+oi!
+oi!mecan&m5rela-5CC (+oi!
+oi!sp5rela-5ma3(+oi! //&nction spee! ma3/normal/slo,
+oi!sp5rela-5slo,(+oi!
+oi!sp5rela-5normal(+oi!
+oi!tem'aB (+oi!
//====sBps====//
+oi!&art5sen!(&nsigne! c"ar !ata
&nsigne! c"ar &art5rec(+oi!
&nsigne! c"ar sBps(&nsigne! c"ar !ata
8/17/2019 Programming Used 2
5/37
+oi! init5&art2(+oi!
//====&nction tam'a"an====//
+oi! !ela-(&nsigne! long i
+oi!le!5'linBing(+oi!&nsigne! c"ar s1L
&nsigne! c"ar s1)
&nsigne! c"ar s2L
&nsigne! c"ar s2)
&nsigne!int static 3 = ;
&nsigne!int static - = ??
int main(+oi!
H
DTSDisa'le
init5IO(
T)I%%)=1
:;T)%=
:8T)%=
!ela-(1
T)I%%)=1
LD5)D=1
ser+o1=2? //trigger
ser+o2=1 //gripper
,"ile(1
H
i(sBps(p5start==
H
LD5)D=
T)I%%)=1
,"ile(1
8/17/2019 Programming Used 2
6/37
H
LD5%)0=1
i(sBps(p5&p==
Hi(sBps(p5rig"t==
H
LD5%)0=1
LD56IT=1
mecan&m5rig"t(9;G9;
else i(sBps(p5let==
H
LD5)D=1
LD5L:=1
mecan&m5let(9;G9;
else i(sBps(p5r1==
H
LD5%)0=1
LD56IT=1
mecan&m5C(9;G9;
else i(sBps(p5l1==
H
LD5)D=1
LD5L:=1
mecan&m5CC(9;G9;
else i(sBps(p5r2==
H
LD5%)0=1
LD56IT=1
8/17/2019 Programming Used 2
7/37
mecan&m58?(9;G9;
else i(sBps(p5l2==
H LD5)D=1
LD5L:=1
mecan&m51;?(9;G9;
else
H
LD5)D=1
LD5%)0=1
mecan&m5or,ar!(9;G9;
else i(sBps(p5!o,n==
H
i(sBps(p5rig"t==
H
LD5%)0=1
LD56IT=1
mecan&m5let(9;G9;
else i(sBps(p5let==
H
LD5)D=1
LD5L:=1
mecan&m5rig"t(9;G9;
else i(sBps(p5r1==
H
LD5%)0=1
8/17/2019 Programming Used 2
8/37
LD56IT=1
mecan&m5C(9;G9;
else i(sBps(p5l1== H
LD5)D=1
LD5L:=1
mecan&m5CC(9;G9;
else i(sBps(p5r2==
H
LD5%)0=1
LD56IT=1
mecan&m5;1?(9;G9;
else i(sBps(p5l2==
H
LD5)D=1
LD5L:=1
mecan&m522?(9;G9;
else
H
LD5L:=1
LD56IT=1
mecan&m5re+erse(9;G9;
else i(sBps(p5rig"t==
H
LD5%)0=1
LD56IT=1
8/17/2019 Programming Used 2
9/37
mecan&m5rig"t(9;G9;
else i(sBps(p5let==
H LD5)D=1
LD5L:=1
mecan&m5let(9;G9;
else i(sBps(p5r1==
H
LD5)D=1
LD5L:=1
mecan&m5C(9;G9;
else i(sBps(p5l1==
H
LD5%)0=1
LD56IT=1
mecan&m5CC(9;G9;
else i(sBps(p5r2==
H
LD5%)0=1
LD56IT=1
mecan&m58?(9;G9;
else i(sBps(p5l2==
H
LD5)D=1
LD5L:=1
mecan&m51;?(9;G9;
8/17/2019 Programming Used 2
10/37
else i(sBps(p5o-5l!J=?
H
ser+o1=ser+o14?
i(ser+o1K=2 H
ser+o1=2
else i(sBps(p5o-5l&J=?
H
ser+o1=ser+o1?
i(ser+o1J=8
H
ser+o1=8
else i(sBps(p5o-l==
H
ser+o1=28
else i(sBps(p5o-5rlJ=?
H
ser+o2=ser+o2?
i(ser+o1J=2?
H
ser+o2=2?
else i(sBps(p5o-5rrJ=?
H
ser+o2=ser+o24?
8/17/2019 Programming Used 2
11/37
i(ser+o1K=2
H
ser+o2=2
else i(sBps(p5cross==
H
LD5L:=1
T)I%%)=
// tem'aB(
else i(sBps(p5select==
H
init5IO(
LD5L:=LD5%)0=LD56IT=LD5)D=1
!ela-(1
LD5L:=LD5%)0=LD56IT=LD5)D=
else
H
init5IO(
LD5L:=LD5%)0=LD56IT=LD5)D=
T)I%%)=1
:;T)%=
:8T)%=
ret&rn
8/17/2019 Programming Used 2
12/37
+oi!init5IO(+oi!
H
//================ST I/O AS DI%ITAL======================//
A0SLA = A0SL =
A0SLC =
A0SLD =
A0SL =
//=================ST $I0 AS I0$:T========================//
//$:S6 :TTO0
T)IS6'its7T)IS6< = 1
T)IS6'its7T)IS61 = 1
//=================ST $I0 AS O:T$:T=======================//
//LD
T)IS6'its7T)IS68 =
T)IS6'its7T)IS69 =
T)IS'its7T)IS18 =
T)ISF'its7T)ISF1; =
//>OTO)
T)IS'its7T)IS< =
T)IS'its7T)IS =
T)ISA'its7T)ISA =
T)IS'its7T)IS =
T)IS%'its7T)IS%< =
T)IS'its7T)IS1 =
T)IS%'its7T)IS%@ =
T)IS'its7T)IS? =
T)IS%'its7T)IS%9 =
T)IS'its7T)IS8 =
T)IS'its7T)IS1; =
8/17/2019 Programming Used 2
13/37
T)IS'its7T)IS; =
//12$I0 I/
T)IS6'its7T)IS612 = //T)I%%)
c"ange5pin(
init5&art2(
init5$>(
//:1)% =)%*AL //&nt&B testing :A)T man&al
//:2)% =)%*AL
:;)% =)%*AL
:8)% =)%*AL
//T2=
T;=
T8=
//=================I0ITIALIM TO M)O======================//
LD5L: = //mera"//se'el&mt&Bar
LD5%)0 = //"ia&
LD5)D = //p&ti"
LD56IT = //'ir&
T)I%%)=1
>1A=>1=>2A=>2=>;A=>;=>8A=>8=>?A=>?=
+oi!init5$>(
H
$T$) = 288 /N $T$) = ((1 / 8B6 / 178ns = 288G ,"ere8B6
is t"e !esire! s,itc"ing reE&enc- an! 178ns is $> resol&tion7 N/
$TCO02'its7$CLDI*=9 //1 = Di+i!e4'-498
8/17/2019 Programming Used 2
14/37
/NPPPPPPPPPPPPPPPPPPPPPPP $>1 Confg&rationPPPPPPPPPPPPPPPPPPPPPPPPPPPPN/
IOCO01'its7$06 = 1 /N $>16 is controlle! '- $> mo!&le
N/
IOCO01'its7$0L = /N $>1L is controlle! '- %$IO mo!&leN/
IOCO01'its7$>OD = 1 /N Select In!epen!ent O&tp&t $>mo!e N/
//$DC1 = /N Initial D&t- c-cle N/
DT)1 = 98 /N Dea!time setting N/
ALTDT)1 = 98 /N Dea!time setting N/
$6AS1 = /N 0o p"ase s"it N/
/NPPPPPPPPPPPPPPPPPPPPPPP $>2 Confg&rationPPPPPPPPPPPPPPPPPPPPPPPPPPPPPN/
IOCO02'its7$06 = 1 /N $>26 is controlle! '- $> mo!&leN/
IOCO02'its7$0L = /N $>2L is controlle! '- %$IO mo!&leN/
IOCO02'its7$>OD = 1 /N Select In!epen!ent O&tp&t $>mo!e N/
//$DC2 = /N Initial D&t- c-cle N/
DT)2 = 98 /N Dea!time setting N/
ALTDT)2 = 98 /N Dea!time setting N/
$6AS2 = /N appro3imatel- 2?ns p"ase s"it N/
/NPPPPPPPPPPPPPPPPPPPPPPP $>; Confg&ration
PPPPPPPPPPPPPPPPPPPPPPPPPPPPN/
IOCO0;'its7$06 = 1 /N $>16 is controlle! '- $> mo!&leN/
IOCO0;'its7$0L = /N $>1L is controlle! '- %$IO mo!&leN/
IOCO0;'its7$>OD = 1 /N Select In!epen!ent O&tp&t $>mo!e N/
$DC; = /N Initial D&t- c-cle N/
DT); = 98 /N Dea!time setting N/ ALTDT); = 98 /N Dea!time setting N/
8/17/2019 Programming Used 2
15/37
$6AS; = /N 0o p"ase s"it N/
/NPPPPPPPPPPPPPPPPPPPPPPP $>8 Confg&rationPPPPPPPPPPPPPPPPPPPPPPPPPPPPN/
IOCO08'its7$06 = 1 /N $>16 is controlle! '- $> mo!&leN/
IOCO08'its7$0L = /N $>1L is controlle! '- %$IO mo!&leN/
IOCO08'its7$>OD = 1 /N Select In!epen!ent O&tp&t $>mo!e N/
//$DC8 = /N Initial D&t- c-cle N/
DT)8 = 98 /N Dea!time setting N/
ALTDT)8 = 98 /N Dea!time setting N/
$6AS8 = /N 0o p"ase s"it N/
/NPPPPPPPPPPPPPPPPPPPPPPP $>? Confg&rationPPPPPPPPPPPPPPPPPPPPPPPPPPPPN/
IOCO0?'its7$06 = 1 /N $>16 is controlle! '- $> mo!&leN/
IOCO0?'its7$0L = /N $>1L is controlle! '- %$IO mo!&le
N/
IOCO0?'its7$>OD = 1 /N Select In!epen!ent O&tp&t $>mo!e N/
$DC? = /N Initial D&t- c-cle N/
DT)? = 98 /N Dea!time setting N/
ALTDT)? = 98 /N Dea!time setting N/
$6AS? = /N 0o p"ase s"it N/
/NPPPPPPPPPPPPPPPPPPPPPPP $>9 Confg&rationPPPPPPPPPPPPPPPPPPPPPPPPPPPPN/
IOCO09'its7$06 = 1 /N $>16 is controlle! '- $> mo!&leN/
IOCO09'its7$0L = /N $>1L is controlle! '- %$IO mo!&leN/
IOCO09'its7$>OD = 1 /N Select In!epen!ent O&tp&t $>mo!e N/
$DC9 = /N Initial D&t- c-cle N/ DT)9 = 98 /N Dea!time setting N/
8/17/2019 Programming Used 2
16/37
ALTDT)9 = 98 /N Dea!time setting N/
$6AS9 = /N 0o p"ase s"it N/
/NPPPPPPPPPPPPPPPPPPPPPPP $>@ Confg&rationPPPPPPPPPPPPPPPPPPPPPPPPPPPPN/
IOCO0@'its7$06 = 1 /N $>16 is controlle! '- $> mo!&leN/
IOCO0@'its7$0L = /N $>1L is controlle! '- %$IO mo!&leN/
IOCO0@'its7$>OD = 1 /N Select In!epen!ent O&tp&t $>mo!e N/
$DC@ = /N Initial D&t- c-cle N/
DT)@ = 98 /N Dea!time setting N/
ALTDT)@ = 98 /N Dea!time setting N/
$6AS@ = /N 0o p"ase s"it N/
//==================================//
$TCO0'its7$T0 = 1 /N na'le t"e $> >o!&le N/
+oi!c"ange5pin(+oi! //:A)T 0 T:A) $I0
H
//:1>OD'its7:A)T0 =1 //>OD T
//:1STA'its7:T0 =1 //CO0T)OLL )%IST)
//:2>OD'its7:A)T0 =1 //!" setting Bt&ntion :A)T
//:2STA'its7:T0 =1
:;>OD'its7:A)T0 =1
:;STA'its7:T0 =1
:8>OD'its7:A)T0 =1
:8STA'its7:T0 =1
//:A)T 24S$S //g&na :A)T2
)$I0)1'its7:2))=112 //S$S4) 111
)$O)1'its7)$9@)=; //:A)T24T 11
8/17/2019 Programming Used 2
17/37
)$O)1'its7)$99)=2@ //:A)T;4T 1 111
)$O)'its7)$9?)=2 //:A)T84T 1 111
+oi! init5&art2(+oi!
H
:2STA'its7:)ISL =
I$C@'its7:2)I$=?
:2STA'its7O)) =
IFS1'its7:2)IF =
IC1'its7:2)I =
:2>OD'its7:A)T0 = 1
:2STA'its7:T0 = 1
:2)% = )%*AL
// &art &nction (serial comm&nication
//=======================================================================
+oi!&art5sen!(&nsigne! c"ar !ata //&nction to sen! o&t a '-te +ia &art
H
,"ile(:2STA'its7:TF == 1 //,ait or pre+io&s !ata to fnis" sen! o&t
:2T)% = !ata //sen! ne, !ata
&nsigne! c"ar &art5rec(+oi! //&nction to ,ait or a '-te recei+e rom &art
H
,"ile(:2STA'its7:)DA == //,ait or !ata to recei+e!
:2STA'its7O)) =
ret&rn :2))% //ret&rn t"e recei+e! !ata
// sBps &nction (rea! an! ,rite !ata to $S2
8/17/2019 Programming Used 2
18/37
//=======================================================================
&nsigne! c"ar sBps(&nsigne! c"ar !ata //&nction to rea! '&tton an! o-sticB
H
&art5sen!(!ata
ret&rn&art5rec(
+oi! !ela-(&nsigne! long i
H
or(iJi44
H
+oi!le!5'linBing(+oi!
H
LD5L: = 1
!ela-(1
LD5L: =
!ela-(1
+oi!mecan&m5or,ar!(&nsigne! int mLG &nsigne! intm)
H
i(sBps(p5triangle==
H
s1L = 98 mL 43
s1) = 12 m) 43
:;T)% = s1L
:;T)% = s1)
8/17/2019 Programming Used 2
19/37
s2L = 98 4 mL 3
s2) = 12 4 m) 3
:8T)% = s2L
:8T)% = s2)
else i(sBps(p5circle==
H
s1L = 98 mL 4-
s1) = 12 m) 4-
:;T)% = s1L
:;T)% = s1)
s2L = 98 4 mL -
s2) = 12 4 m) -
:8T)% = s2L
:8T)% = s2)
else
H
s1L = 98 mL
s1) = 12 m)
:;T)% = s1L
:;T)% = s1)
s2L = 98 4 mL
s2) = 12 4 m)
:8T)% = s2L
:8T)% = s2)
+oi!mecan&m5re+erse(&nsigne! int mLG &nsigne! intm)
8/17/2019 Programming Used 2
20/37
H
i(sBps(p5triangle==
H
s1L = 98 4 mL 3 s1) = 12 4 m) 3
:;T)% = s1L
:;T)% = s1)
s2L = 98 mL 43
s2) = 12 m) 43
:8T)% = s2L
:8T)% = s2)
else i(sBps(p5circle==
H
s1L = 98 4 mL -
s1) = 12 4 m) -
:;T)% = s1L
:;T)% = s1)
s2L = 98 mL 4-
s2) = 12 m) 4-
:8T)% = s2L
:8T)% = s2)
else
H
s1L = 98 4 mL
s1) = 12 4 m)
:;T)% = s1L
:;T)% = s1)
8/17/2019 Programming Used 2
21/37
s2L = 98 mL
s2) = 12 m)
:8T)% = s2L
:8T)% = s2)
+oi!mecan&m5let(&nsigne! int mLG &nsigne! intm)
H
i(sBps(p5triangle==
H
s1L = 98 4 mL 3
s1) = 12 m) 43
:;T)% = s1L
:;T)% = s1)
s2L = 98 mL 43
s2) = 12 4 m) 3
:8T)% = s2L
:8T)% = s2)
else i(sBps(p5circle==
H
s1L = 98 4 mL -
s1) = 12 m) 4-
:;T)% = s1L
:;T)% = s1)
s2L = 98 mL 4-
s2) = 12 4 m) -
:8T)% = s2L
:8T)% = s2)
8/17/2019 Programming Used 2
22/37
else
H
s1L = 98 4 mL s1) = 12 m)
:;T)% = s1L
:;T)% = s1)
s2L = 98 mL
s2) = 12 4 m)
:8T)% = s2L
:8T)% = s2)
+oi!mecan&m5rig"t(&nsigne! int mLG &nsigne! intm)
H
i(sBps(p5triangle==
H
s1L = 98 mL 43
s1) = 12 4 m) 3
:;T)% = s1L
:;T)% = s1)
s2L = 98 4 mL 3
s2) = 12 m) 43
:8T)% = s2L
:8T)% = s2)
else i(sBps(p5circle==
H
s1L = 98 mL 4-
8/17/2019 Programming Used 2
23/37
s1) = 12 4 m) -
:;T)% = s1L
:;T)% = s1)
s2L = 98 4 mL -
s2) = 12 m) 4-
:8T)% = s2L
:8T)% = s2)
else
H
s1L = 98 mL
s1) = 12 4 m)
:;T)% = s1L
:;T)% = s1)
s2L = 98 4 mL
s2) = 12 m)
:8T)% = s2L
:8T)% = s2)
+oi! mecan&m58?(&nsigne! int mLG &nsigne! intm)
H
i(sBps(p5triangle==
H
s1L = 98 mL 43
s1) = 12
:;T)% = s1L
:;T)% = s1)
8/17/2019 Programming Used 2
24/37
s2L = 98 4 m) 3
s2) = 12
:8T)% = s2L
:8T)% = s2)
else i(sBps(p5circle==
H
s1L = 98 mL 4-
s1) = 12
:;T)% = s1L
:;T)% = s1)
s2L = 98 4 m) -
s2) = 12
:8T)% = s2L
:8T)% = s2)
else
H
s1L = 98 mL
s1) = 12
:;T)% = s1L
:;T)% = s1)
s2L = 98 4 m)
s2) = 12
:8T)% = s2L
:8T)% = s2)
+oi! mecan&m51;?(&nsigne! int mLG &nsigne! intm)
8/17/2019 Programming Used 2
25/37
H
i(sBps(p5triangle==
H
s1L = 98 s1) = 12 m) 43
:;T)% = s1L
:;T)% = s1)
s2) = 98
s2L = 12 4 mL 3
:8T)% = s2L
:8T)% = s2)
else i(sBps(p5circle==
H
s1L = 98
s1) = 12 m) 4-
:;T)% = s1L
:;T)% = s1)
s2) = 98
s2L = 12 4 mL -
:8T)% = s2L
:8T)% = s2)
else
H
s1L = 98
s1) = 12 m)
:;T)% = s1L
:;T)% = s1)
8/17/2019 Programming Used 2
26/37
s2) = 98
s2L = 12 4 mL
:8T)% = s2L
:8T)% = s2)
+oi! mecan&m522?(&nsigne! int mLG &nsigne! intm)
H
i(sBps(p5triangle==
H
s1L = 98 4 mL 3
s1) = 12
:;T)% = s1L
:;T)% = s1)
s2L = 98 m) 43
s2) = 12
:8T)% = s2L
:8T)% = s2)
else i(sBps(p5circle==
H
s1L = 98 4 mL -
s1) = 12
:;T)% = s1L
:;T)% = s1)
s2L = 98 m) 4-
s2) = 12
:8T)% = s2L
:8T)% = s2)
8/17/2019 Programming Used 2
27/37
else
H
s1L = 98 4 mL s1) = 12
:;T)% = s1L
:;T)% = s1)
s2L = 98 m)
s2) = 12
:8T)% = s2L
:8T)% = s2)
+oi! mecan&m5;1?(&nsigne! int mLG &nsigne! intm)
H
i(sBps(p5triangle==
H
s1L = 98
s1) = 12 4 m) 3
:;T)% = s1L
:;T)% = s1)
s2) = 98
s2L = 12 mL 43
:8T)% = s2L
:8T)% = s2)
else i(sBps(p5circle==
H
s1L = 98
8/17/2019 Programming Used 2
28/37
s1) = 12 4 m) -
:;T)% = s1L
:;T)% = s1)
s2) = 98
s2L = 12 mL 4-
:8T)% = s2L
:8T)% = s2)
else
H
s1L = 98
s1) = 12 4 m)
:;T)% = s1L
:;T)% = s1)
s2) = 98
s2L = 12 mL
:8T)% = s2L
:8T)% = s2)
+oi!mecan&m5CC(&nsigne! int mLG &nsigne! intm)
H
i(sBps(p5triangle==
H
s1L = 98 4 mL 3
s1) = 12 m) 43
:;T)% = s1L
:;T)% = s1)
8/17/2019 Programming Used 2
29/37
s2L = 98 4 mL 3
s2) = 12 m) 43
:8T)% = s2L
:8T)% = s2)
else i(sBps(p5circle==
H
s1L = 98 4 mL -
s1) = 12 m) 4-
:;T)% = s1L
:;T)% = s1)
s2L = 98 4 mL -
s2) = 12 m) 4-
:8T)% = s2L
:8T)% = s2)
else
H
s1L = 98 4 mL
s1) = 12 m)
:;T)% = s1L
:;T)% = s1)
s2L = 98 4 mL
s2) = 12 m)
:8T)% = s2L
:8T)% = s2)
+oi!mecan&m5C(&nsigne! int mLG &nsigne! intm)
8/17/2019 Programming Used 2
30/37
H
i(sBps(p5triangle==
H
s1L = 98 mL 43 s1) = 12 4 m) 3
:;T)% = s1L
:;T)% = s1)
s2L = 98 mL 43
s2) = 12 4 m) 3
:8T)% = s2L
:8T)% = s2)
else i(sBps(p5circle==
H
s1L = 98 mL 4-
s1) = 12 4 m) -
:;T)% = s1L
:;T)% = s1)
s2L = 98 mL 4-
s2) = 12 4 m) -
:8T)% = s2L
:8T)% = s2)
else
H
s1L = 98 mL
s1) = 12 4 m)
:;T)% = s1L
:;T)% = s1)
8/17/2019 Programming Used 2
31/37
s2L = 98 mL
s2) = 12 4 m)
:8T)% = s2L
:8T)% = s2)
+oi! mecan&m5t&rn1(&nsigne! int mLG &nsigne! intm)
H
i(sBps(p5triangle==
H
s1L = 98 mL 43
s1) = 12 4 m) 3
:;T)% = s1L
:;T)% = s1)
s2L = 98 4 mL 3
s2) = 12 m) 43
:8T)% = s2L
:8T)% = s2)
else i(sBps(p5circle==
H
s1L = 98 mL 4-
s1) = 12 4 m) -
:;T)% = s1L
:;T)% = s1)
s2L = 98 4 mL -
s2) = 12 m) 4-
:8T)% = s2L
8/17/2019 Programming Used 2
32/37
:8T)% = s2)
else
H s1L = 98 4 mL
s1) = 12 m)
:;T)% = s1L
:;T)% = s1)
s2L = 98
s2) = 12
:8T)% = s2L
:8T)% = s2)
+oi!mecan&m5rela-5or,ar! (+oi!
H
>1A=1 //or,ar!
>1=
// sp1=3
>2A= //or,ar!
>2=1
// sp2=-
>;A=1 //or,ar!
>;=
// sp;=3
>8A= //or,ar!
>8=1
// sp8=-
sp5rela-5normal(
8/17/2019 Programming Used 2
33/37
+oi!mecan&m5rela-5re+erse (+oi!
H
>1A= //'acB,ar! >1=1
// sp1=3
>2A=1 //'acB,ar!
>2=
// sp2=-
>;A= //'acB,ar!
>;=1
// sp;=3
>8A=1 //'acB,ar!
>8=
// sp8=-
sp5rela-5normal(
+oi!mecan&m5rela-5let (+oi!
H
>1A= //'acB,ar!
>1=1
// sp1=3
>2A= //'acB,ar!
>2=1
// sp2=-
>;A=1 //or,ar!
>;=
// sp;=3
>8A=1 //or,ar!
>8=
// sp8=-
8/17/2019 Programming Used 2
34/37
sp5rela-5normal(
+oi!mecan&m5rela-5rig"t (+oi!H
>1A=1 //or,ar!
>1=
// sp1=3
>2A=1 //or,ar!
>2=
// sp2=-
>;A= //'acB,ar!
>;=1
// sp;=3
>8A= //'acB,ar!
>8=1
// sp8=-
sp5rela-5normal(
+oi!mecan&m5rela-5C (+oi!
H
>1A=1 //or,ar!
>1=
// sp1=3
>2A=1 //or,ar!
>2=
// sp2=-
>;A=1 //or,ar!
>;=
// sp;=3
>8A=1 //or,ar!
8/17/2019 Programming Used 2
35/37
>8=
// sp8=-
sp5rela-5normal(
+oi!mecan&m5rela-5CC (+oi!
H
>1A= //or,ar!
>1=1
// sp1=3
>2A= //or,ar!
>2=1
// sp2=-
>;A= //or,ar!
>;=1
// sp;=3
>8A= //or,ar!
>8=1
// sp8=-
sp5rela-5normal(
+oi!sp5rela-5normal(+oi!
H
i(sBps(p5triangle==
H
sp5rela-5ma3(
else i(sBps(p5sE&are==
H
sp5rela-5slo,(
8/17/2019 Programming Used 2
36/37
else
H
sp1=2
sp2=2 sp;=2
sp8=2
+oi!sp5rela-5slo,(+oi!
H
sp1=?
sp2=?
sp;=?
sp8=?
+oi!sp5rela-5ma3(+oi!
H
sp1=2?
sp2=2?
sp;=2?
sp8=2?
+oi!tem'aB(+oi!
H
T)I%%)=
LD5L:=1
!ela-(1
T)I%%)=1
LD5L:=
!ela-(1
T)I%%)=
8/17/2019 Programming Used 2
37/37
LD5L:=1
!ela-(1
T)I%%)=1
LD5L:=1!ela-(1