programming used 2

Upload: mfaiz-rhamira

Post on 06-Jul-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 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