libreria pantalla arduino
TRANSCRIPT
-
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