WEBVTT

00:01.470 --> 00:07.590
Avendo collegato manualmente il nostro display TFT al nostro Arduino, useremo il nostro Arduino per disegnare

00:07.590 --> 00:15.000
sul display i principi e i passaggi sono gli stessi con qualsiasi microcontrollore. Il display può gestire fino a 18

00:15.060 --> 00:16.640
bit di colore.

00:16.800 --> 00:23.420
Ma per ora useremo solo il colore a 16 bit in modo da poter mantenere i dati a due byte.

00:23.550 --> 00:34.560
Il colore è un nostro G. B. valore con un formato 5 6 5 5 bit 4 rosso 6 bit per il verde e

00:34.800 --> 00:36.630
5 bit per il blu in questo modo.

00:36.630 --> 00:45.020
Abbiamo 2 byte o quattro stuzzichini o 16 bit in modo da visualizzare Fullbright in questo rosso.

00:45.120 --> 00:58.850
Avremmo questo numero che sarebbe f 8 0 0 in esadecimale per Green sarebbe questo numero che è 0

00:58.940 --> 01:10.600
7 e 0 in esadecimale 4 blu sarebbe che è 0 0 1 F in esadecimale.

01:10.730 --> 01:13.730
Riesci a vedere da dove ho preso quei numeri.

01:13.940 --> 01:17.630
Passiamo quindi al semplice mix di colori: il nero è facile.

01:17.630 --> 01:19.860
Quello è 0 Rosso 0 verde 0 blu.

01:20.330 --> 01:26.920
Quindi zeri su tutta la linea che ci danno lo 0 0 0 0 in esadecimale.

01:27.080 --> 01:32.650
Il bianco è la piena luminosità del rosso verde e blu, quindi uno in ogni bit.

01:32.780 --> 01:37.560
Quindi otteniamo f f f f in esadecimale.

01:38.090 --> 01:45.110
Puoi mescolare e abbinare i colori esattamente come abbiamo fatto in precedenza quando mescoliamo i colori RG B mescolando la piena luminosità

01:45.110 --> 01:52.220
rosso e la luminosità a byte intero blu ci dà il magenta per fare che avresti tutti quelli nei bit rossi tutti gli

01:52.220 --> 01:55.190
zeri dei bit verdi tutti e i pezzi blu.

01:55.190 --> 02:06.570
Quindi avresti f 8 one f in hex che puoi giocare mescolando i colori in seguito, ma una delle prime cose che

02:06.570 --> 02:15.420
facciamo nel nostro sketch di esempio scaricabile dalla sezione download è per semplicità abbiamo predefinito un mucchio

02:15.420 --> 02:23.560
di colori in modo da poter semplicemente usa i colori per nome invece che lì.

02:23.860 --> 02:32.760
Difficile ricordare il codice esadecimale, quindi guardando lo schizzo puoi capire rapidamente l'installazione abbastanza facilmente per

02:32.760 --> 02:33.500
te.

02:33.540 --> 02:41.660
Definiamo rapidamente quali pin fanno quale lavoro con le linee di controllo e abbiamo le linee dati

02:41.660 --> 02:43.590
cablate alla porta D.

02:43.610 --> 02:52.370
Quindi ora inviamo semplicemente il numero che vogliamo sul database alla porta D e poi

02:52.370 --> 03:04.130
facciamo la nostra attività con le linee di controllo che abbiamo appena definito, quindi scorrendo verso il basso fino alla funzione

03:04.130 --> 03:12.060
di configurazione, impostiamo un ciclo rapido per impostare chiatte winos GPI si apre.

03:12.150 --> 03:20.220
Tutti come tutti gli output per tutti i pin collegati al database e le linee di controllo TFT tutte le linee

03:20.220 --> 03:22.770
di controllo sono attive in basso.

03:23.220 --> 03:29.790
Quindi per ora impostiamo tutte le linee di controllo in alto.

03:29.830 --> 03:40.510
Dobbiamo anche impostare la porta come il registro di direzione dei dati della porta D come tutte le uscite.

03:40.530 --> 03:43.050
Quindi lo facciamo qui con questa linea qui.

03:43.230 --> 03:50.610
I registri della direzione dei dati at Mill erano l'opposto del pick un'uscita 1 4 in un ingresso 0 4, sapeva che

03:53.400 --> 03:54.730
tutto è impostato.

03:54.750 --> 04:00.920
Dobbiamo passare attraverso l'inizializzazione del display proprio come abbiamo fatto con la temperatura sedici e

04:00.920 --> 04:03.900
trentotto e persino il display Hitachi.

04:03.900 --> 04:16.950
Iniziamo semplicemente eseguendo un hard reset sulla scheda, tenendo bassa la linea di reset e aspettando 200 millisecondi perché l'elettronica impiega

04:16.980 --> 04:19.660
del tempo per rispondere.

04:19.710 --> 04:21.440
Quindi impostiamo la linea di ripristino.

04:21.450 --> 04:31.070
Ciao, quindi la scheda è ora attiva e di nuovo aspettiamo 100 millisecondi affinché l'elettronica risponda.

04:31.100 --> 04:36.740
Ricordi che abbiamo dovuto ritardare sia il driver Hitachi che la squadra sedici trentotto schede

04:36.740 --> 04:41.030
perché le chips del driver erano lente durante il reset, giusto.

04:41.030 --> 04:43.300
Quindi è esattamente la stessa cosa qui.

04:43.340 --> 04:50.120
Credo che questo ritardo sia ciò che ha causato problemi a parecchie persone che hanno problemi quando hanno provato

04:50.120 --> 04:52.090
a usare le loro schede.

04:52.220 --> 04:57.530
Molte persone su Internet stavano parlando del temuto schermo bianco della morte o del

04:57.530 --> 05:02.210
Black Screen of Death in cui il display TFT non rispondeva.

05:02.210 --> 05:07.660
Stava mostrando uno schermo bianco o nero solido, quindi è tutto.

05:07.670 --> 05:13.330
Bene, quello era uno dei sintomi di non ripristinare correttamente la scheda all'avvio.

05:13.340 --> 05:19.970
Alcune persone hanno scoperto di poter risolvere questo problema semplicemente inserendo un ritardo più lungo dopo il ripristino

05:19.970 --> 05:20.900
hardware iniziale.

05:20.900 --> 05:27.770
Sfortunatamente questo implica un po 'di approfondimento con le biblioteche che sono state passate in

05:27.770 --> 05:28.400
giro.

05:28.550 --> 05:32.360
Ecco perché così tante persone non hanno nemmeno superato questo punto.

05:32.360 --> 05:38.810
Ora stiamo usando la libreria in cui stiamo scrivendo il nostro codice e questa è una

05:38.810 --> 05:45.990
funzione chiave che deve essere eseguita correttamente altrimenti la nostra scheda semplicemente non funzionerà o potrebbe non funzionare correttamente.

05:46.040 --> 05:53.870
Quindi, spostandoci dopo l'hard reset, ora dobbiamo impostare il display.

05:53.930 --> 05:59.770
Riconoscerai alcuni di questi passaggi poiché dobbiamo eseguirli su Hitachi e sedici trentotto

05:59.780 --> 06:00.710
piloti.

06:00.710 --> 06:09.810
Il primo passo che dobbiamo fare è portare la scheda in modalità di sospensione, quindi guardando il foglio dati

06:09.870 --> 06:14.010
eyeline 90 341 dovrebbe essere scaricato dall'ultima lezione.

06:14.210 --> 06:27.060
Troverai il comando sia nel contenuto che nella sua pagina descrittore descrittore.

06:27.160 --> 06:30.860
Qui è dormire fuori.

06:30.920 --> 06:35.480
Quindi, se si utilizza un driver e una scheda tecnica diversi.

06:35.570 --> 06:44.750
Questo potrebbe avere un nome diverso e potrebbe non utilizzare lo stesso indirizzo di registro di 1 1.

06:44.840 --> 06:49.430
Quindi saltando alla pagina centouno avviso.

06:49.430 --> 06:54.740
Ancora una volta questo comando richiede ritardi dopo l'invio.

06:54.760 --> 07:00.710
Ora richiede solo un minimo di cinque millisecondi ma su una scala temporale a microprocessore che è

07:00.710 --> 07:01.460
molto tempo.

07:01.460 --> 07:07.320
Ed è importante e consiglierei di attendere più di 5 millisecondi.

07:07.490 --> 07:14.540
Quindi, guardando indietro al nostro schizzo, tutto ciò che facciamo è caricare quel comando esadecimale.

07:14.540 --> 07:25.730
1 1 sulla porta D e poiché questa è un'istruzione, teniamo bassa la riga di selezione del registro indicando che si tratta di un

07:25.730 --> 07:28.110
comando non di dati.

07:28.400 --> 07:38.990
E poi strozziamo la linea giusta con un impulso basso e abbiamo appena impartito la nostra prima istruzione al chip del

07:38.990 --> 07:39.900
driver.

07:40.060 --> 07:47.180
Quindi non dimenticare quel ritardo richiesto da questo particolare comando.

07:47.180 --> 07:52.100
Sono andato ben oltre quando è stato necessario ritardare di centoventi millisecondi

07:52.130 --> 07:53.060
anziché cinque.

07:53.060 --> 07:55.020
Giusto per essere al sicuro.

07:55.130 --> 07:55.450
Tutto ok.

07:55.460 --> 08:01.040
Abbiamo eseguito un ripristino hardware e svegliato la scheda dalla modalità sleep il primo che si sarebbe

08:01.250 --> 08:08.900
appena registrato sarà impostato per il controllo pazzo o il registro di controllo dell'accesso alla memoria che controlla che tu conosca l'orientamento dello schermo

08:08.900 --> 08:12.840
e ti consente di invertire la modalità colore se lo desideri.

08:12.860 --> 08:18.150
È un comando seguito da un byte che imposta i bit nel registro.

08:18.200 --> 08:26.570
I registri dei bit sono disponibili a pagina 127 e ciò che ciascuno di essi fa.

08:26.570 --> 08:35.280
Vogliamo che tutti i bit nel registro siano zeri per impostare tutto in modalità normale.

08:35.300 --> 08:44.920
Quindi, guardando prima il nostro schizzo, impostiamo la linea RSA in basso per indicare che questa è un'istruzione, quindi cariciamo il comando

08:44.980 --> 08:54.600
di controllo pazzo o esadecimale 3 6 sulle linee di dati da un Port de, strozziamo la linea giusta con un impulso

08:55.170 --> 08:57.990
basso per inviare il comando .

08:58.260 --> 09:04.500
Il driver si aspetta ora che i dati vengano inseriti nel registro dei controlli pazzi.

09:04.500 --> 09:15.760
Quindi mettiamo in alto la linea di arresto per indicare che si tratta di dati caricare il bus nel bus dati con x 0 0 come abbiamo

09:16.210 --> 09:23.470
determinato e quindi lampeggiare la linea destra con un impulso basso di nuovo tenere presente che se

09:23.470 --> 09:32.560
si dispone di un chip driver diverso questo comando potrebbe essere un nome diverso o un valore esadecimale diverso dovrai capirlo

09:32.710 --> 09:34.630
dalla tua scheda tecnica.

09:34.870 --> 09:40.660
Il prossimo registro importante che dobbiamo impostare è il registro della modalità colore perché lo

09:40.900 --> 09:50.530
schermo può assumere un colore a sei bit un colore a sedici bit o un colore a diciotto bit che possiamo vedere nell'indice che il

09:51.340 --> 10:02.600
nostro comando color mode è hex 3 a così andiamo su a pagina 134 possiamo vedere cosa dobbiamo impostare per il colore a 16 bit questa modalità colore richiede

10:02.600 --> 10:06.880
due morsi di coppia di dati per pixel anziché tre.

10:07.010 --> 10:09.710
Quindi per ora useremo la modalità a sedici bit.

10:09.950 --> 10:23.980
Come puoi vedere, dobbiamo impostare i bit DP I come 1 0 1 e anche i bit DCI come 1 0 1.

10:24.400 --> 10:26.550
Quindi c'è DP di db.

10:26.780 --> 10:30.330
I bit rimanenti sono entrambi zeri.

10:30.500 --> 10:40.730
Quindi avremo 0 1 0 1 0 1 0 1 o 5 5 in esadecimale.

10:40.760 --> 10:52.300
Quindi, guardando indietro al nostro schizzo, impostiamo la RSA in posizione abbassata per un comando carica questi tre comandi in modalità colore sul bus lampeggia

10:52.330 --> 11:00.400
la linea giusta con un basso imposta la linea IRS per alta per i dati carica i

11:00.400 --> 11:10.790
nostri dati di 5 5 sul bus lampeggia a destra allineato con un impulso basso facile facile il terzo passo necessario è

11:10.790 --> 11:16.370
proprio come prima con altri display che dobbiamo accendere il display.

11:16.370 --> 11:24.290
Proprio come prima dello schermo si imposta automaticamente la modalità off all'accensione perché la memoria dello schermo assumerà

11:24.290 --> 11:27.520
valori casuali impostando la modalità off.

11:27.530 --> 11:35.030
Quando ti viene acceso per la prima volta il programmatore di questo magnifico dispositivo hai la

11:35.030 --> 11:42.600
possibilità di ripulire lo schermo prima di attivarlo, ma proprio come prima che siamo strani non vogliamo ripulirlo.

11:42.650 --> 11:46.430
Voglio che tu veda quella casualità.

11:46.430 --> 11:54.230
Quindi nell'ultima lezione quando hai eseguito lo schizzo del registro reed hai avuto modo di vedere come appariva lo schermo

11:54.470 --> 11:56.330
nella barca off predefinita.

11:56.330 --> 11:58.420
Cosa ha fatto il tuo schermo.

11:58.550 --> 12:00.520
Era completamente bianco.

12:00.530 --> 12:02.880
Era completamente nero.

12:02.870 --> 12:12.050
No, di solito diventano completamente bianchi in modo che l'utente finale possa vedere lo schermo effettivamente alimentato e

12:12.050 --> 12:15.610
viene risposto quando accendono il dispositivo.

12:15.620 --> 12:21.590
Questo evita la confusione causata quando i vecchi accendono l'alimentazione e se lo schermo rimane

12:21.590 --> 12:24.870
nero sembra che il dispositivo non sia alimentato.

12:24.890 --> 12:32.500
Tuttavia, questa è un'altra area in cui i programmatori hanno avuto problemi nel tentativo di utilizzare queste schermate.

12:32.660 --> 12:39.830
Lo schermo diventa bianco e o non hanno capito che avevano bisogno di accenderlo o

12:40.580 --> 12:48.800
hanno incasinato l'inizializzazione dello schermo non si è acceso perché probabilmente perché hanno usato il comando sbagliato perché

12:48.800 --> 12:55.820
i chip del driver dello schermo sono stati erroneamente identificati o dal programmatore o dalla

12:56.030 --> 12:56.690
libreria.

12:56.690 --> 12:58.450
Stavano cercando di usare.

12:58.790 --> 13:06.900
Quindi guardando nell'indice della scheda tecnica sui novantatre quaranta uno questo comando si chiama

13:07.530 --> 13:13.220
display on con un valore esadecimale di 2 9.

13:13.250 --> 13:18.990
È possibile visualizzare la visualizzazione del comando e questa è la modalità predefinita.

13:18.990 --> 13:24.810
Ora non ci sono dati per nessuno di questi comandi che invia il comando accende o

13:25.020 --> 13:26.130
spegne lo schermo.

13:26.130 --> 13:30.450
Quindi, tornando al nostro schizzo, non penso di doverti dire cosa sta succedendo qui.

13:30.510 --> 13:33.810
C'è il comando esadecimale 2 9 per accendere bene

13:36.330 --> 13:37.260
lo schermo.

13:37.320 --> 13:44.530
Questo è il minimo indispensabile che dobbiamo attivare e utilizzare il display e per il momento è tutto

13:44.530 --> 13:46.040
ciò che faremo.

13:46.050 --> 13:54.300
In questo modo è possibile testare il display finora e vedere se si sta ottenendo il

13:54.300 --> 13:57.440
comportamento previsto nello schizzo di esempio.

13:57.630 --> 14:00.480
Puoi vedere qui sulla linea uno ventitre.

14:00.690 --> 14:04.020
Ho un blocco di commenti segnato.

14:04.110 --> 14:17.230
Fondamentalmente ho appena commentato questo pezzo dello schizzo in modo da poter eseguire il nostro schizzo finora e quindi possiamo vedere se

14:17.230 --> 14:20.860
tutto funziona come previsto o no.

14:21.250 --> 14:27.130
Quindi non dimenticare di scollegare i connettori dai pin 0 e 1.

14:27.130 --> 14:33.490
Se dimentichi e provi a lampeggiare o Uno con i fili ancora collegati, interferirà con la

14:33.550 --> 14:40.460
comunicazione USP e l'IDC sputerà un sacco di errori con i fili estratti dai pin 0 e 1.

14:40.470 --> 14:47.140
Vai avanti e fai flash o schizzi sull'arduino e una volta terminato, collega il desiderio di pin 0 e d

14:47.140 --> 14:48.820
1 al pin 1.

14:49.030 --> 14:55.540
Basta premere il pulsante di ripristino su Uno ma guardare attentamente lo schermo per vedere cosa succede.

14:55.870 --> 15:02.840
Le schermate dovrebbero passare dall'aspetto predefinito in modalità disattivata alla casualità sullo schermo.

15:03.430 --> 15:08.710
Ora che la casualità può assumere una varietà di forme, se è veramente

15:08.710 --> 15:18.930
casuale, sembrerà statica sullo schermo in questo modo, ma a causa della produzione della memoria i registri possono tendere a passare a uno e a zero

15:18.930 --> 15:21.970
come un po 'di un modello .

15:22.200 --> 15:24.660
Quindi potrebbe apparire così.

15:26.690 --> 15:34.430
E se guardi molto da vicino puoi vedere che c'è un po 'di casualità, ma in sostanza alcune linee stanno diventando

15:34.490 --> 15:40.790
bianche mentre altre stanno diventando nere e ha solo a che fare con il modo in

15:40.790 --> 15:47.530
cui sono stati fabbricati i transistor che oscilla indipendentemente dal fatto che le infradito si ribaltino o no flop.

15:49.310 --> 15:56.060
Quindi spero che il tuo schermo sia passato dalla modalità off predefinita ad on e stai vedendo qualcosa sullo

15:56.060 --> 15:56.470
schermo.

15:56.720 --> 16:00.680
Se sei eccellente allora sei fuori e corri.

16:00.680 --> 16:05.570
Stai comunicando con la scheda e sta rispondendo ai tuoi comandi.

16:06.800 --> 16:11.330
Ho fatto qualcosa di sottile qui ma molto importante.

16:11.480 --> 16:14.960
In realtà è qualcosa che non ho fatto.

16:14.960 --> 16:20.190
Noterai che abbiamo creato solo tre registri.

16:20.600 --> 16:28.100
Molte persone su Internet che hanno scritto schizzi o intere librerie per queste schede hanno creato

16:28.250 --> 16:33.650
dozzine e dozzine di registri nella loro inizializzazione e schermate.

16:33.650 --> 16:41.570
Ora va bene e quasi tutti i registri impostati aumentano la complessità del tuo schizzo e la possibilità di

16:41.570 --> 16:48.950
impostare un registro errato o di impostare un registro in modo errato e lo schermo non funziona o

16:49.490 --> 16:52.740
si comporta in un modo molto strano.

16:52.850 --> 17:00.710
Quindi ho semplicemente sfruttato le impostazioni predefinite dopo l'accensione e ho ipotizzato che le impostazioni importanti

17:01.070 --> 17:04.580
sarebbero predefinite su alcune impostazioni utilizzabili.

17:04.580 --> 17:10.540
Quindi come vedere questo punto calvo qui sì.

17:10.550 --> 17:16.850
Questo è da parte mia che mi strappavo i capelli cercando di far funzionare questi display quando non

17:16.850 --> 17:22.460
lo facevano e cercando di farmi strada attraverso schizzi di esempio nelle biblioteche che fornivano

17:22.730 --> 17:31.490
a volte dove scrivevano più di cento volte in memoria e registri e probabilmente il 99 percento di quelli i registri erano per funzioni

17:31.610 --> 17:36.270
che non avrebbero mai usato come impostazioni di terrore per i video.

17:36.440 --> 17:43.940
Quindi evita tutta quella seccatura, mal di testa e problemi e usa il più possibile le impostazioni predefinite.
