WEBVTT

00:01.440 --> 00:08.050
Quindi, con un contatore binario costruito, useremo questo per contare effettivamente quante volte premi un pulsante.

00:08.820 --> 00:12.960
So che so che ti stai chiedendo cosa diavolo ci stai facendo.

00:12.960 --> 00:15.290
Juba, lavori solo con me.

00:15.300 --> 00:15.860
OK.

00:15.930 --> 00:17.900
Sto cercando di mostrarti qualcosa.

00:18.690 --> 00:22.560
Utilizzeremo essenzialmente lo stesso circuito dall'ultima lezione.

00:22.560 --> 00:30.000
Tuttavia, ora passeremo a una X da un segnale di clock esterno al clock interno che funziona

00:30.000 --> 00:31.700
a 16 megahertz.

00:31.800 --> 00:40.320
Stiamo andando a mettere un pulsante collegato all'ingresso sono uno zero, che è il nostro output di ingresso digitale sulla

00:40.490 --> 00:41.570
porta A.

00:41.700 --> 00:44.360
Questo è il pin 13 sul chip stesso.

00:44.610 --> 00:52.040
Configureremo il programma in modo che ogni volta che premiamo il pulsante il nostro contatore binario conta 1.

00:52.140 --> 00:53.310
Sembra piuttosto semplice.

00:53.580 --> 00:59.000
C'è un piccolo problema subdolo qui, voglio che tu veda in prima persona così puoi essere stupito quanto me.

00:59.010 --> 01:00.900
Ogni volta che mi occupo di questo.

01:01.300 --> 01:03.420
OK, quindi ancora una volta il codice

01:08.420 --> 01:09.370
è disponibile.

01:11.640 --> 01:17.830
Basta copiare e incollare.

01:18.240 --> 01:26.800
Puoi copiarlo e incollarlo nella finestra dell'assemblatore del progetto di contatore binario se vuoi o ancora puoi praticare

01:26.830 --> 01:31.210
la costruzione di un nuovo progetto da zero.

01:31.240 --> 01:35.740
Vedi se dimentichi qualcosa nel set up e crash tutto quando vai a provare a programmarlo.

01:36.400 --> 01:39.520
Puoi lasciare il 555 sul tabellone se vuoi.

01:39.520 --> 01:45.880
Stiamo impostando il chip per ignorare quell'input, ma non useremo il 555 in nessun altro dei

01:45.880 --> 01:47.150
nostri progetti pick.

01:47.170 --> 01:53.220
Quindi, se vuoi tenerlo lì per il tuo uso personale mentre provi con il plettro, fallo.

01:53.350 --> 01:56.790
Oppure puoi rimuoverlo completamente dal tabellone.

01:57.280 --> 02:04.930
Diamo una rapida occhiata al codice in cui ti verrà presentato un paio di ulteriori istruzioni.

02:04.930 --> 02:06.970
Ora nella sezione

02:09.890 --> 02:17.630
fuzes abbiamo fatto solo un cambiamento ed ecco il registro FOMC che è il registro

02:17.630 --> 02:20.870
che imposta la frequenza dell'oscillatore sull'orologio.

02:20.870 --> 02:29.090
L'abbiamo cambiato da un orologio determinato esternamente all'I UN. OSCE o oscillatore interno.

02:29.120 --> 02:35.620
Quindi l'orologio all'interno del chip è un falso di 16 megahertz anche se è possibile modificare tale frequenza.

02:35.630 --> 02:43.150
E un paio di modi diversi in cui ci arriveremo in una lezione successiva dedicata a queste impostazioni dei fusibili.

02:43.220 --> 02:50.570
La prima riga imposta la banca in cui si trova il registro di stato tri tri C sui pick, di solito ci

02:50.570 --> 02:52.820
sono più porte su questo pick.

02:52.820 --> 02:59.900
Abbiamo una porta a e una porta C e ricordate che molti di questi pin avevano più funzioni.

02:59.930 --> 03:01.460
Hanno tre stati diversi.

03:01.460 --> 03:05.940
Fondamentalmente possono essere un ingresso digitale che legge un segnale alto o basso in arrivo.

03:06.140 --> 03:13.580
Potrebbero essere usati come uscita digitale che emette un segnale alto o basso o alcuni pin potrebbero essere configurati

03:13.700 --> 03:18.180
come ingresso analogico per leggere una tensione molto elevata sul pin.

03:18.620 --> 03:25.700
Quindi ci sono questi registri tri state specifici per ogni porta e si imposta la porta per fare ciò che

03:25.700 --> 03:26.660
si desidera.

03:26.780 --> 03:30.740
Ora la porta C ha solo 6 pin da r c 0 a RC 5.

03:30.950 --> 03:38.300
Quindi il Registro Trixi ha un po 'associato con ogni porta C registra i primi due bit non importa perché non

03:38.300 --> 03:40.270
sono comunque collegati a nulla.

03:40.270 --> 03:50.720
Quindi se invio un numero binario di 0 0 1 0 1 1 0 1 al registro Tristate C allora ogni punto in cui lo

03:50.720 --> 03:57.560
imposto diventa un ingresso digitale e ovunque sia stato impostato a zero diventa un'uscita digitale.

03:57.980 --> 04:06.980
Quindi in questo esempio 0 2 3 e 5 sono stati tutti impostati su ingressi e RC 1 e 4 sono stati impostati come uscite.

04:07.220 --> 04:13.280
Entrerò nelle impostazioni analogiche in una lezione successiva quando useremo gli ingressi analogici.

04:13.310 --> 04:18.560
Quindi, nel nostro programma, per prima cosa ho selezionato la banca corretta.

04:18.650 --> 04:19.760
Molto importante.

04:20.030 --> 04:26.760
Ho barato e gli ho detto di impostare la banca in qualunque banca fosse la banca in cui si trovava il registro Tracy.

04:27.080 --> 04:28.570
E poi l'ho cancellato.

04:28.580 --> 04:30.800
Ho detto tutte le uscite Pinza.

04:30.800 --> 04:35.820
Poi ho cambiato banca con quello che contiene l'albero è un registro.

04:35.840 --> 04:41.630
È interessante notare che non avevo davvero bisogno di farlo qui perché succede che gli alberi vedano e

04:41.650 --> 04:45.080
gli alberi a siano nella stessa banca su questo piccone.

04:45.500 --> 04:52.700
Tuttavia, si ricorda che prima usavamo il file include all'inizio per facilità di

04:52.700 --> 04:59.190
programmazione, ma anche per trasferire questo programma su un altro processore.

04:59.270 --> 05:00.650
Quindi sto solo pensando in anticipo qui.

05:00.740 --> 05:03.910
È una singola riga di codice non molto lavoro da digitare.

05:04.160 --> 05:10.880
Ma se ora trasferisco questo codice su un altro micro pick e il registro si trova in

05:10.880 --> 05:13.800
una banca diversa dal registro Taurasi.

05:13.850 --> 05:16.710
Ho le mie basi coperte.

05:16.820 --> 05:20.600
Inseriamo quindi il haf's haf nel registro di lavoro.

05:20.600 --> 05:22.020
Tutti e otto in alto.

05:22.980 --> 05:27.230
Quindi spostiamo il contenuto del registro di lavoro sugli alberi.

05:27.630 --> 05:32.020
Tutti i pin collegati alla porta sono ora impostati come ingressi.

05:32.270 --> 05:38.030
Ora usando presto uno di questi ingressi è eccessivo, ma è stato semplice.

05:38.420 --> 05:46.390
Impostiamo la banca sul registro di Laxey che è il registro in cui scriviamo effettivamente per scrivere gli arresti C e

05:46.850 --> 05:50.900
i suoi bit corrispondono anche ai bit di porta C.

05:50.900 --> 05:57.140
Ora possiamo scrivere direttamente su porta vedere se vogliamo invece scrivere sul latch ma spiegherò perché

05:57.140 --> 05:59.150
più avanti è tecnico.

05:59.630 --> 06:01.840
Cancelliamo il fermo.

06:02.300 --> 06:06.220
Quindi ora tutti i nostri output sulla porta C sono bassi.

06:06.860 --> 06:17.110
Facciamo la nostra prima etichetta Lupi il nostro primo ciclo scusatemi Lupi e poi selezioniamo la banca per Port A.

06:17.250 --> 06:25.140
Dobbiamo farlo perché la porta si trova in una banca completamente diversa rispetto ai registri Tristate

06:25.140 --> 06:27.610
o ai registri di chiusura.

06:27.620 --> 06:37.760
Quindi verifichiamo nuovamente il controllo del test, solo che questa volta controlliamo l'input sul bit 0 della porta e il pin al

06:37.970 --> 06:41.030
quale è collegato il nostro pulsante.

06:41.690 --> 06:44.420
Se spingiamo il pulsante, leggiamo in alto su quel pin.

06:44.900 --> 06:50.470
Quindi il comando specifico è di testare il bit 0 sulla porta A.

06:51.020 --> 07:00.430
Se è deselezionato è chiaro per vedere che significa che il pulsante non è premuto.

07:00.490 --> 07:05.020
Salteremo il prossimo comando.

07:05.020 --> 07:06.890
Quindi non abbiamo premuto il pulsante.

07:07.060 --> 07:19.660
Salta e arriva al comando per andare a Looby, poi torna indietro ancora e ancora 16 milioni di volte al secondo fino a

07:19.660 --> 07:23.650
quando non si preme il pulsante.

07:23.650 --> 07:30.260
Quando fai il grande test mostra il set più grande tenuto alto.

07:30.500 --> 07:38.060
Quindi non salta il prossimo comando il prossimo comando chiama una subroutine.

07:38.220 --> 07:40.850
C'è il nostro primo comando per chiamare la subroutine.

07:40.850 --> 07:45.050
Ora etichette come Lupi one o button press

07:49.650 --> 07:56.280
possono essere usate come punti di atterraggio per comandi come go to o call.

07:56.280 --> 08:00.400
Ora, se glielo dico, andrà all'etichetta.

08:00.540 --> 08:07.200
Ma se chiamo un'etichetta, ciò che accadrà è che andrà a quell'etichetta.

08:07.380 --> 08:15.930
Eseguirà il codice fino a quando non vedrà il comando restituire il comando lì in basso alla fine della

08:15.930 --> 08:18.420
subroutine della pressione dei pulsanti.

08:18.420 --> 08:21.960
Ora ricorda Dan the Man con lo stack qui è dove entra.

08:22.170 --> 08:25.990
Quindi ricorda dove ti sei interrotto qui.

08:26.940 --> 08:28.890
E memorizza quella linea in questa pila.

08:28.890 --> 08:36.110
Quindi quando emetti il comando di ritorno ti riporterà da qui a destra, dove hai interrotto,

08:36.110 --> 08:37.770
non lo fa.

08:37.770 --> 08:45.070
Vai a andare lì senza alcuna aspettativa di tornare morto.

08:45.120 --> 08:48.970
L'uomo non ricorda da dove sei venuto e non gli importa.

08:49.110 --> 08:53.700
Sei solo tu che sai saltare il programma con il comando vai.

08:54.120 --> 09:00.880
Quindi chiamiamo il sottomarino che salta giù per premere un pulsante.

09:00.900 --> 09:07.950
La prima cosa che succede è che selezioniamo la banca perché vediamo perché dobbiamo lavorare

09:07.950 --> 09:09.360
su quel registro.

09:09.390 --> 09:16.620
Quindi facciamo esattamente come abbiamo fatto nel nostro contatore binario originale che abbiamo controllato per vedere se è già arrivato a 16 nel

09:16.620 --> 09:17.790
conteggio o meno.

09:17.940 --> 09:26.180
Se è stato impostato su zero, avvia nuovamente il conteggio e continua la linea di codice.

09:26.240 --> 09:38.810
Selezioniamo il banco per la porta A e controlliamo che la porta A stia leggendo un valore basso sul bit 0 perché abbiamo rilasciato il pulsante

09:38.810 --> 09:46.930
se stiamo ancora tenendo premuto quel pulsante, quindi salterà sul pulsante dell'etichetta che si trova qui

09:48.540 --> 09:49.340
sopra.

09:52.990 --> 10:05.990
E continuerà a farlo finché non rilasciamo il pulsante, ma il bit zero sulla porta A mostra un valore basso e il bit test dice

10:05.990 --> 10:09.220
di saltare il comando successivo.

10:09.770 --> 10:13.240
E salta al comando di ritorno.

10:14.320 --> 10:16.930
Ora torna a qui.

10:18.980 --> 10:26.660
E continua questo ciclo ancora e ancora in attesa di premere nuovamente il pulsante.

10:28.330 --> 10:28.720
OK.

10:28.740 --> 10:30.480
Spero che abbia senso ora.

10:30.500 --> 10:38.120
Lo schema è nella sezione download e una volta che hai costruito

10:38.120 --> 10:43.200
hai fatto lampeggiare il programma sulla foto provalo.

10:58.330 --> 11:00.750
Il conto alla rovescia ogni

11:04.030 --> 11:08.240
volta che si preme il pulsante, ma si verificherà un malfunzionamento.

11:08.860 --> 11:12.060
Voglio che tu ci giochi per un po 'e vediamo se riesci a capire cosa sta succedendo.

11:12.060 --> 11:18.140
Sai se sei davvero intelligente potresti persino capire perché sta facendo quello che sta facendo.

11:19.290 --> 11:19.600
Nessuna.

11:19.620 --> 11:24.370
Quindi nella prossima lezione parleremo di cosa sta succedendo e cosa fare al riguardo.
