Libreria Pantalla Arduino

download Libreria Pantalla Arduino

of 44

Transcript of Libreria Pantalla Arduino

  • 8/18/2019 Libreria Pantalla Arduino

    1/44

    // IMPORTANT: LIBRARY MUST BE SPECIFICALLY CONFIGURED FOR EITHER TFTSHIELD

    // OR BREAKOUT BOARD USAGE. SEE RELEVANT COMMENTS INAdafrui!TFTLCD."

    // Gra#"i$% &i'rar( '( &ad(ada/adafrui )i" i*i $+d, fr+- R+%%u-

    // MIT &i$,*%,

    if d,*,d0!!SAM123E!!4

    i*$&ud, 5i*$&ud,/#i+."6

      d,*, PROGMEM

      d,*, #7-!r,ad!'(,0addr4 080$+*% u*%i7*,d $"ar 840addr44  d,*, #7-!r,ad!)+rd0addr4 080$+*% u*%i7*,d %"+r 840addr44

    ,*dif 

    ifd,f !!AVR!! 

    i*$&ud, 5a9r/#7-%#a$,."6

    ,*dif 

    i*$&ud, #i*%!ardui*+."

    i*$&ud, )iri*7!#ri9a,."i*$&ud, Adafrui!TFTLCD."

    i*$&ud, #i*!-a7i$."

    //d,*, TFT;IDTH 13=

    d,*, TFT;IDTH =d,*, TFTHEIGHT >==

    // LCD $+*r+&&,r $"i# id,*i,r%

    d,*, ID!?1

  • 8/18/2019 Libreria Pantalla Arduino

    2/44

  • 8/18/2019 Libreria Pantalla Arduino

    3/44

      $%Pi*S, di7ia&Pi*T+BiMa%0$%4

      $dPi*S, di7ia&Pi*T+BiMa%0$d4

      )rPi*S, di7ia&Pi*T+BiMa%0)r4

      rdPi*S, di7ia&Pi*T+BiMa%0rd4

      $%Pi*U*%, J$%Pi*S,

      $dPi*U*%, J$dPi*S,

      )rPi*U*%, J)rPi*S,

      rdPi*U*%, JrdPi*S,

      ifd,f !!AVR!! 

      8$%P+r $%Pi*S, // S, a&& $+*r+& 'i% + HIGH 0id&,4

      8$dP+r $dPi*S, // Si7*a&% ar, ACTIVE LO;

      8)rP+r )rPi*S,

      8rdP+r rdPi*S,

      ,*dif 

      if d,*,d0!!SAM123E!!4

      $%P+r6PIO!SODR $%Pi*S, // S, a&& $+*r+& 'i% + HIGH 0id&,4

      $dP+r6PIO!SODR $dPi*S, // Si7*a&% ar, ACTIVE LO;

      )rP+r6PIO!SODR )rPi*S,

      rdP+r6PIO!SODR rdPi*S,

      ,*dif 

      #i*M+d,0$% OUTPUT4 // E*a'&, +u#u%

      #i*M+d,0$d OUTPUT4

      #i*M+d,0)r OUTPUT4

      #i*M+d,0rd OUTPUT4

      if0r,%,4

      di7ia&;ri,0r,%, HIGH4

      #i*M+d,0r,%, OUTPUT4

     

    ,*dif 

  • 8/18/2019 Libreria Pantalla Arduino

    4/44

      i*i04

    // C+*%ru$+r f+r %"i,&d 0,d LCD $+*r+& &i*,%4

    Adafrui!TFTLCD::Adafrui!TFTLCD09+id4 : Adafrui!GF20TFT;IDTH TFTHEIGHT4

      i*i04

    // I*iia&iai+* $+--+* + '+" %"i,&d 'r,a+u $+*7%

    9+id Adafrui!TFTLCD::i*i09+id4

    ifd,f USE!ADAFRUIT!SHIELD!PINOUT

      CS!IDLE // S, a&& $+*r+& 'i% + id&, %a,

      ;R!IDLE

      RD!IDLE

      CD!DATA

      di7ia&;ri,0 HIGH4 // R,%, &i*,

      #i*M+d,0A1 OUTPUT4 // E*a'&, +u#u%

      #i*M+d,0A

  • 8/18/2019 Libreria Pantalla Arduino

    5/44

      ,$+&+r =FFFF

      !)id" TFT;IDTH

      !",i7" TFTHEIGHT

    // I*iia&iai+* $+--a*d a'&,% f+r di,r,* LCD $+*r+&&,r%

    d,*, TFTLCD!DELAY =FF

    %ai$ $+*% ui*3! H231>@G!r,7Va&u,%Q PROGMEM

      =

  • 8/18/2019 Libreria Pantalla Arduino

    6/44

      =

      TFTLCD!DELAY

      =@ ==

      =1 ==?

      ==

      = ===

      == =EF

      == ===

      ==@ ===

      ==3 ==

      ==? =1F

    %ai$ $+*% ui*3! H231@D!r,7Va&u,%Q PROGMEM

  • 8/18/2019 Libreria Pantalla Arduino

    7/44

      H231@!S;RESET =

      H231@D!SETC 1 =FF =31 =@

      TFTLCD!DELAY === === == ==

      H231@D!SETCOM =

  • 8/18/2019 Libreria Pantalla Arduino

    8/44

      ILI?1 =====

      ILI?1

  • 8/18/2019 Libreria Pantalla Arduino

    9/44

      ILI?1

  • 8/18/2019 Libreria Pantalla Arduino

    10/44

    =B 1 ==3 =3

  • 8/18/2019 Libreria Pantalla Arduino

    11/44

    =

  • 8/18/2019 Libreria Pantalla Arduino

    12/44

      dri9,r ID!?1>

      CS!ACTIVE

      )ri,R,7i%,r30ILI?1>!SOFTRESET =4

      d,&a(0=4

      )ri,R,7i%,r30ILI?1>!DISPLAYOFF =4

      )ri,R,7i%,r30ILI?1>!PO;ERCONTROL =!PO;ERCONTROL!VCOMCONTROL =!MADCTL!MY

    ILI?1>!MADCTL!BGR4

      )ri,R,7i%,r30ILI?1>!PI2ELFORMAT =4

      )ri,R,7i%,r0ILI?1>!FRAMECONTROL ===B4

     

    )ri,R,7i%,r30ILI?1>!ENTRYMODE ==@4

      /8 )ri,R,7i%,r1!DISPLAYFUNC ==A3!DISPLAYON =4

      d,&a(0==4

      %,Addr;i*d+)0= = TFT;IDTH TFTHEIGHT4

    8/

    // ILI?1> -$ufri,*d

    dri9,r ID!?1>

    CS!ACTIVE

  • 8/18/2019 Libreria Pantalla Arduino

    13/44

    )"i&,0i 5 %i,+f0ILI?1>!r,7Va&u,%44

    ui*3! r #7-!r,ad!'(,0ILI?1>!r,7Va&u,%Qi4

    ui*3! &,* #7-!r,ad!'(,0ILI?1>!r,7Va&u,%Qi4

    if0r TFTLCD!DELAY4

    d,&a(0&,*4

    ,&%,

    //S,ria&.#ri*0R,7i%,r 4 S,ria&.#ri*0r HE24

    //S,ria&.#ri*0 daa&,* 4 S,ria&.#ri*&*0&,*4

    CS!ACTIVE

    CD!COMMAND

    )ri,30r4

    CD!DATA

    f+r 0ui*3! d= d5&,* d4

    ui*3! #7-!r,ad!'(,0ILI?1>!r,7Va&u,%Qi4

    )ri,304

     

    CS!IDLE

     

     

      r,ur*

      ,&%, if 0id =31@4

      // H231@D

      dri9,r ID!H231@D

      CS!ACTIVE

      )"i&,0i 5 %i,+f0H231@D!r,7Va&u,%44

  • 8/18/2019 Libreria Pantalla Arduino

    14/44

      ui*3! r #7-!r,ad!'(,0H231@D!r,7Va&u,%Qi4

      ui*3! &,* #7-!r,ad!'(,0H231@D!r,7Va&u,%Qi4

      if0r TFTLCD!DELAY4

    d,&a(0&,*4

      ,&%,

    //S,ria&.#ri*0R,7i%,r 4 S,ria&.#ri*0r HE24

    //S,ria&.#ri*0 daa&,* 4 S,ria&.#ri*&*0&,*4

    CS!ACTIVE

    CD!COMMAND

    )ri,30r4

    CD!DATA

    f+r 0ui*3! d= d5&,* d4

      ui*3! #7-!r,ad!'(,0H231@D!r,7Va&u,%Qi4

      )ri,304

    CS!IDLE

     

     

      r,ur*

     

    ,&%, if0id =@@4

      ui*3! a d

      dri9,r ID!@@

      CS!ACTIVE

      )"i&,0i 5 %i,+f0H231>@G!r,7Va&u,%44

      a #7-!r,ad!'(,0H231>@G!r,7Va&u,%Qi4

      d #7-!r,ad!'(,0H231>@G!r,7Va&u,%Qi4

  • 8/18/2019 Libreria Pantalla Arduino

    15/44

      if0a TFTLCD!DELAY4 d,&a(0d4

      ,&%, )ri,R,7i%,r30a d4

     

      %,R+ai+*0r+ai+*4

      %,LR04 // L+),rri7" $+r*,r +f addr,%% )i*d+)

      ,&%, if0id ==>4

      //SD=>

      ui*! a d

      dri9,r ID!SD=>

      CS!ACTIVE

      //)ri,R,7i%,r0=3====3D4 //T,%,(

      //)ri,R,7i%,r0=?

  • 8/18/2019 Libreria Pantalla Arduino

    16/44

      )ri,R,7i%,r0====

  • 8/18/2019 Libreria Pantalla Arduino

    17/44

      ,&%, if 0id =?1

  • 8/18/2019 Libreria Pantalla Arduino

    18/44

    r,ur*

     

    9+id Adafrui!TFTLCD::r,%,09+id4

      CS!IDLE

    // CD!DATA

      ;R!IDLE

      RD!IDLE

    ifd,f USE!ADAFRUIT!SHIELD!PINOUT

      di7ia&;ri,0 LO;4

      d,&a(0

  • 8/18/2019 Libreria Pantalla Arduino

    19/44

    // S,% ", LCD addr,%% )i*d+) 0a*d addr,%% $+u*,r +* ?1

  • 8/18/2019 Libreria Pantalla Arduino

    20/44

      $a%, 4

    )ri,R,7i%,r0=1@ 4 //H+ri+*a&SarAddr,%%

    )ri,R,7i%,r0=1

  • 8/18/2019 Libreria Pantalla Arduino

    21/44

      )ri,R,7i%,r0==== 4 // S, addr,%% )i*d+) H+ri+*a& a*d V,ri$a&RAM Addr,%% P+%ii+* 0R=" R" R@G!COLADDREND!LO @G!RO;ADDREND!HI H231>@G!RO;ADDREND!LO (4 0dri9,r ID!H231@D4 0dri9,r ID!ILI?1 

      55

     

  • 8/18/2019 Libreria Pantalla Arduino

    22/44

     

    CS!IDLE

    // U*&i, ", ?1@G!RO;ADDREND!HI H231>@G!RO;ADDREND!LO !",i7" 4

      CS!IDLE

    // Fa% '&+$ && +#,rai+* f+r &&S$r,,* &&R,$ H/V &i*, ,$.

    // R,uir,% %,Addr;i*d+)04 "a% #r,9i+u%&( ',,* $a&&,d + %, ", &&

    // '+u*d%. X&,*X i% i*$&u%i9, MUST ', 6 .

    9+id Adafrui!TFTLCD::++d0ui*! $+&+r ui*1

      ui*! '&+$%  ui*3! i "i $+&+r 66 3

      &+ $+&+r

      CS!ACTIVE

  • 8/18/2019 Libreria Pantalla Arduino

    23/44

      CD!COMMAND

      if 00dri9,r ID!?1>4 0dri9,r ID!ILI?1

  • 8/18/2019 Libreria Pantalla Arduino

    24/44

     

      // Fi&& a*( r,-ai*i*7 #i,&% 0 + >4

      f+r0i 0ui*3!4&,* 1 i 4

      ;R!STROBE

      ;R!STROBE

     

      ,&%,

      )"i&,0'&+$%4

      i // > #i,&%/'&+$ / > #i,&%/#a%%

      d+

      )ri,30"i4 )ri,30&+4 )ri,30"i4 )ri,30&+4

      )ri,30"i4 )ri,30&+4 )ri,30"i4 )ri,30&+4

      )"i&,0i4

     

      f+r0i 0ui*3!4&,* 1 i 4

      )ri,30"i4

      )ri,30&+4

     

     

      CS!IDLE

    9+id Adafrui!TFTLCD::dra)Fa%HLi*,0i*! i*! ( i*! &,*7"

      ui*! $+&+r4

      i*!

  • 8/18/2019 Libreria Pantalla Arduino

    25/44

      0 6 !)id"4 00< 0&,*7"44 5 = 44 r,ur*

      if0 5 =4 // C&i# &,f

      &,*7"

      =

     

      if0< 6 !)id"4 // C&i# ri7"

      < !)id"

      &,*7" <

     

      %,Addr;i*d+)0 (

  • 8/18/2019 Libreria Pantalla Arduino

    26/44

      if0(< 6 !",i7"4 // C&i# '++-

      (< !",i7"

      &,*7" (< (

     

      %,Addr;i*d+)0 ( (

  • 8/18/2019 Libreria Pantalla Arduino

    27/44

     

      if0(< 6 !",i7"4 // C&i# '++-

      (< !",i7"

      " (< (

     

      %,Addr;i*d+)0 (

      ,&%, %,LR04

    9+id Adafrui!TFTLCD::&&S$r,,*0ui*! $+&+r4

     

    if0dri9,r ID!?1

  • 8/18/2019 Libreria Pantalla Arduino

    28/44

      )ri,R,7i%,r0===4 0dri9,r ID!@@4 0dri9,r ID!H231@D4 0dri9,r ID!SD=>4 0dri9,r ID!ILI?1

  • 8/18/2019 Libreria Pantalla Arduino

    29/44

      ( TFTHEIGHT (

      'r,a

      $a%, 1:

     

      (

      ( TFTHEIGHT

      'r,a

     

      )ri,R,7i%,r0===@G!MEMACCESS &+4

      // O*&( u##,r&,f i% %, '++-ri7" i% fu&& %$r,,* d,fau&

      )ri,R,7i%,rPair0H231>@G!COLADDRSTART!HIH231>@G!COLADDRSTART!LO 4

      )ri,R,7i%,rPair0H231>@G!RO;ADDRSTART!HIH231>@G!RO;ADDRSTART!LO (4

      "i $+&+r 66 3 &+ $+&+r

      CD!COMMAND )ri,30=

  • 8/18/2019 Libreria Pantalla Arduino

    30/44

      ,&%, if 00dri9,r ID!?1>4 0dri9,r ID!H231@D4 0dri9,r ID!ILI?1

  • 8/18/2019 Libreria Pantalla Arduino

    31/44

      if0dri9,r ID!?14 0dri9,r ID!H231@D4 0dri9,r ID!ILI?1

  • 8/18/2019 Libreria Pantalla Arduino

    32/44

      %)i$"0r+ai+*4

      d,fau&: ==1= 'r,a

      $a%, : ==4

  • 8/18/2019 Libreria Pantalla Arduino

    33/44

  • 8/18/2019 Libreria Pantalla Arduino

    34/44

      'r,a

      $a%, 1:

      H231@B!MADCTL!M2 H231@B!MADCTL!MV H231@B!MADCTL!RGB

      'r,a

      $a%, =:

      H231@B!MADCTL!M2 H231@B!MADCTL!MY H231@B!MADCTL!RGB

      'r,a

      $a%, :

      H231@B!MADCTL!MY H231@B!MADCTL!MV H231@B!MADCTL!RGB

      'r,a

     

      )ri,R,7i%,r30ILI?1>!MADCTL 4 // MADCTL

      // F+r 31@ i*i d,fau& fu&&%$r,,* addr,%% )i*d+):

      %,Addr;i*d+)0= = !)id" !",i7" 4 // CS!IDLE "a##,*% ",r,

     

     

    if 0dri9,r ID!ILI?1 'u di,r,* 9a&u,%

      ui*!

      %)i$" 0r+ai+*4

      $a%, !MADCTL!BGR =3=

      'r,a

      $a%, 1:

      ILI?1>!MADCTL!BGR =E=

      'r,a

      $a%, =:

  • 8/18/2019 Libreria Pantalla Arduino

    35/44

      ILI?1>!MADCTL!BGR ==!MADCTL 4 // MADCTL

      // F+r ?1> i*i d,fau& fu&&%$r,,* addr,%% )i*d+):

      %,Addr;i*d+)0= = !)id" !",i7" 4 // CS!IDLE "a##,*% ",r,

     

     

    ifd,f r,ad3i%Fu*$i+*a&i,d

      d,*, r,ad304 r,ad3f*04

    ,*dif 

    // B,$au%, "i% fu*$i+* i% u%,d i*fr,u,*&( i $+*7ur,% ", #+r% f+r

    // ", r,ad +#,rai+* r,ad% ", daa ",* r,%+r,% ", #+r% + ", )ri,

    // $+*7urai+*. ;ri, +#,rai+*% "a##,* a LOT %+ iX% ad9a*a7,+u% +

    // &,a9, ", #+r% i* "a %a, a% a d,fau&.

    ui*! Adafrui!TFTLCD::r,adPi,&0i*! i*! (4

      if00 5 =4 0( 5 =4 0 6 !)id"4 0( 6 !",i7"44 r,ur* =

      CS!ACTIVE

      if00dri9,r ID!?14 0dri9,r ID!ILI?1

  • 8/18/2019 Libreria Pantalla Arduino

    36/44

      $a%, :

     

      TFT;IDTH (

      (

      'r,a

      $a%,

  • 8/18/2019 Libreria Pantalla Arduino

    37/44

    CD!COMMAND )ri,30===4 )ri,30=

  • 8/18/2019 Libreria Pantalla Arduino

    38/44

      000ui*!47 B==4 55 14

      0 ' 66 14

      ,&%, r,ur* =

    // Di+ )i" ", r,ad/)ri, #+r dir,$i+*% a% a'+9,.

    ui*! Adafrui!TFTLCD::r,adID09+id4

      ui*3! "i &+

      /8

      f+r 0ui*3! i= i54 =3===4 // ," $&+%, ,*+u7"

      // %,$W

      /8

      S,ria&.#ri*&*0W4

      f+r 0ui*3! i= i5 i4

      S,ria&.#ri*04 S,ria&.#ri*0i HE24

      S,ria&.#ri*0 =4 S,ria&.#ri*&*0r,adR,70i4 HE24

     

      8/

      )ri,R,7i%,r0H231@D!SETC =FF31@4

      d,&a(01==4

      //S,ria&.#ri*&*0r,adR,70=D=4 HE24

      if 0r,adR,70=D=4 =??====4

  • 8/18/2019 Libreria Pantalla Arduino

    39/44

      r,ur* =31@

     

     

      ui*! id r,adR,70=D14

      if 0id =?1>4

      r,ur* =?1>

     

     

    id r,adR,70=EF4

      if 0id =?1

  • 8/18/2019 Libreria Pantalla Arduino

    40/44

    ui*1

      ui*1

      ui*3!

      // r( r,adi*7 r,7i%,r >

      CS!ACTIVE

      CD!COMMAND

      )ri,30r4

      %,R,adDir04 // S, u# LCD daa #+r0%4 f+r READ +#,rai+*%

      CD!DATA

      d,&a(Mi$r+%,$+*d%0=4

      r,ad304

      id // D+ *+ -,r7, +r +",r)i%, %i-#&if(

      id 55 3 // ",%, &i*,%. IX% a* u*f+ru*a,

      r,ad304

      id // %",*a*i7a*% "a ar, 7+i*7 +*.

      id 55 3 // ",%, &i*,%. IX% a* u*f+ru*a,

      r,ad304

      id // %",*a*i7a*% "a ar, 7+i*7 +*.

      id 55 3 // ",%, &i*,%. IX% a* u*f+ru*a,

      r,ad304

      id // %",*a*i7a*% "a ar, 7+i*7 +*.

      if 0r =EF4

      id 55 3 // ",%, &i*,%. IX% a* u*f+ru*a,

    r,ad304

    id

      CS!IDLE

  • 8/18/2019 Libreria Pantalla Arduino

    41/44

      %,;ri,Dir04 // R,%+r, LCD daa #+r0%4 + ;RITE $+*7urai+*

      //S,ria&.#ri*0R,ad 4 S,ria&.#ri*0r HE24

    //S,ria&.#ri*0:[=4 S,ria&.#ri*&*0id HE24

      d,&a(0=4 //%a'i&iai+* i-,

      r,ur* id

    // Pa%% 3'i 0,a$"4 RGB 7, 'a$ 'i #a$,d $+&+r

    ui*! Adafrui!TFTLCD::$+&+r0ui*3! r ui*3! 7 ui*3! '4

      r,ur* 00r =F34 55 34 007 =FC4 55 14 0' 66 14

    // F+r I/O -a$r+% "a ),r, &,f u*d,*,d d,$&ar, fu*$i+*

    // 9,r%i+*% "a r,f,r,*$, ", i*&i*, -a$r+% Zu% +*$,:

    if*d,f )ri,3

    9+id Adafrui!TFTLCD::)ri,30ui*3! 9a&u,4

      )ri,3i*&i*,09a&u,4

    ,*dif 

    ifd,f r,ad3i%Fu*$i+*a&i,d

    ui*3! Adafrui!TFTLCD::r,ad3f*09+id4

      ui*3! r,%u&

      r,ad3i*&i*,0r,%u&4

      r,ur* r,%u&

    ,*dif 

    if*d,f %,;ri,Dir

  • 8/18/2019 Libreria Pantalla Arduino

    42/44

    9+id Adafrui!TFTLCD::%,;ri,Dir09+id4

      %,;ri,DirI*&i*,04

    ,*dif 

    if*d,f %,R,adDir

    9+id Adafrui!TFTLCD::%,R,adDir09+id4

      %,R,adDirI*&i*,04

    ,*dif 

    if*d,f )ri,R,7i%,r3

    9+id Adafrui!TFTLCD::)ri,R,7i%,r30ui*3! a ui*3! d4

      )ri,R,7i%,r3i*&i*,0a d4

    ,*dif 

    if*d,f )ri,R,7i%,r

    9+id Adafrui!TFTLCD::)ri,R,7i%,r0ui*! a ui*! d4

      )ri,R,7i%,ri*&i*,0a d4

    ,*dif 

    if*d,f )ri,R,7i%,rPair

    9+id Adafrui!TFTLCD::)ri,R,7i%,rPair0ui*3! aH ui*3! aL ui*! d4

      )ri,R,7i%,rPairI*&i*,0aH aL d4

    ,*dif 

  • 8/18/2019 Libreria Pantalla Arduino

    43/44

    9+id Adafrui!TFTLCD::)ri,R,7i%,r0ui*3! r ui*1

      CS!ACTIVE

      CD!COMMAND

      )ri,30r4

      CD!DATA

      d,&a(Mi$r+%,$+*d%0=4

      )ri,30d 66 4

      d,&a(Mi$r+%,$+*d%0=4

      )ri,30d 66 34

      d,&a(Mi$r+%,$+*d%0=4

      )ri,30d4

      CS!IDLE

    9+id Adafrui!TFTLCD::)ri,R,7i%,r1  CS!ACTIVE

      CD!COMMAND

      )ri,30r4

      CD!DATA

      d,&a(Mi$r+%,$+*d%0=4

      )ri,30d 66 4

      d,&a(Mi$r+%,$+*d%0=4

      )ri,30d 66 4

      d,&a(Mi$r+%,$+*d%0=4

      )ri,30d 66 34

      d,&a(Mi$r+%,$+*d%0=4

      )ri,30d4

      CS!IDLE

  • 8/18/2019 Libreria Pantalla Arduino

    44/44