Fai un salto al tuo caffè, poi saliamo al
nostro codice top-secret, quindi impostiamo la pubblicità prima con l'output giustificato e usando l'orologio completo, abbiamo appena impostato i bit come abbiamo
capito usando la scheda tecnica.
Quindi procediamo oltre aggiungendo con 0 e impostandolo usando i bit che abbiamo scoperto dalla scheda tecnica, ma abbiamo
notato che il bit 1 ADD I è un po 'il bit GO GO che abbiamo lasciato basso per ora.
Lo metteremo in alto quando saremo pronti per eseguire la nostra conversione.
Tutto ok.
Quindi il prossimo codice segreto contiene tutte le informazioni di configurazione per il display LCD che abbiamo appena fatto prima di copiare
e incollare dal nostro progetto precedente, che imposta lo schermo LCD per la modalità forbit accende il cursore e tutto
il resto.
L'unica cosa che vorrei sottolineare è che quando inviamo i bit sul display si nota che il
bit per on lache see è ora la nostra linea R S.
Questi sono i comandi per l'LCD, quindi mi sono assicurato che il bit 4 fosse tenuto basso durante questo tempo di configurazione.
Arriviamo quindi alla nostra stessa routine che avevamo prima di chiamare il nostro messaggio dal tavolo e visualizzarlo
sul display LCD.
Ora noterai che ho cambiato il messaggio è tutto ciò che ho fatto.
Mi sono sbarazzato del secondo tavolo e ho scritto solo una riga di testo che legge un
vecchio log, leggi Colin sulla prima riga del display, quindi torna alla riga settantadue CVS visto tutto questo già utilizzato e sapere
come funziona.
Impostiamo il convertitore in azione impostando il bit Go alto.
Questo è il convertitore.
Ora inizia il processo inizia a elaborare la sua conversione analogica.
Quando arriviamo alla linea 104, l'etichetta aggiunge check, è qui che arriviamo al business.
Il convertitore sta già lavorando alla sua prima conversione.
Quindi, quello che dobbiamo fare è controllare il bit di go go per vedere se il convertitore ha finito e
ha azzerato quel bit a zero.
Lo facciamo con un test.
È un po 'test su un file saltare l'istruzione successiva se è chiaro sul bit numero uno se è ancora impostato su alto non
è ancora finito.
Quindi torniamo indietro e controlliamo.
Continuiamo a farlo fino al completamento del convertitore.
Quando cancella il bit, controlliamo e vediamo che è ora cancellato e saltiamo la linea 106.
Saltiamo ora le istruzioni e passiamo ad afferrare i numeri dal buffer.
Non dimenticare la selezione della tua banca.
Anche se stai per leggere un registro, devi selezionare la banca.
So che la selezione della banca è un po 'dura, ma come vedrai quando arriveremo ad
Arduino ci sono pro e contro per ogni sistema, quindi selezioniamo la banca per i nostri risultati bassi e alti.
E mettiamo questi risultati in due auto GP, la bici bassa entra nel 78 0 07 8 nell'alto
livello e morde nel nostro 0 7 9.
Ora, prima di andare avanti nel nostro modo allegro per elaborare i numeri che abbiamo appena ottenuto, andiamo avanti
e impostiamo il bit Go alto.
Quindi il convertitore HD può iniziare a lavorare sulla conversione del testo che richiede tempo.
Destra.
Quindi ci vorrà del tempo per fare tutta la nostra conversione.
E così, si spera, sarà fatta la sua conversione quando torneremo.
Quindi, sappiamo che abbiamo iniziato a correre e andremo a giocare con i nostri numeri.
Ora passiamo al complicato processo di conversione dei nostri due byte in caratteri ASCII che invieremo
due snack al display LCD che prenderanno il caffè prima di iniziare il
prossimo processo di piegatura della mente.
Andiamo avanti un po 'e torniamo a questo primo sgranocchiare e poco tempo.
Diamo un'occhiata al secondo nable prima.
Perché è più complesso scorrere fino a qui riga 148.
Nel mio
codice il primo passo è caricare il byte inferiore nel W. registrati ma lo facciamo usando la funzione swap.
Ora, naturalmente, questo scambio i bocconcini superiore e inferiore perché vogliamo inviare prima il bocconcino superiore.
La seconda cosa che facciamo è eseguire il byte attraverso una funzione AND che rimuove il nibble superiore.
Quindi inviamo una copia di W. registrati ad un altro registro generale 0 7 a.
Useremo quel registro per trasferire il morso ai nostri sottotemi matematici.
Ora questo non cancella il registro W.
Quindi ora abbiamo due copie di questo nobile nello 0 7 di un cimitero e un'altra
copia ancora detenuta nel registro W per sapere cosa dobbiamo fare dopo.
Abbiamo bisogno di determinare se il nibble è un valore di 9 o meno e così visualizzato come
un numero di una sola cifra o se è 10 o superiore viene visualizzato come una lettera per verificare ciò che facciamo è sottrarre
ciò che è nel registro W dal numero 9 e verificare se otteniamo un risultato negativo.
Quindi se il boccone nel registro è 10 o superiore, quindi un esadecimale da a a f otterremo un risultato negativo
perché nove meno 10 equivale a negativo 1.
In questo momento è tutto ciò che ci interessa.
Perché se otteniamo un risultato negativo, verranno impostati i bit di carry Boral nel registro di stato.
È facile da controllare con un po 'di test.
Quindi, se il carry bit è impostato, sappiamo che il numero che abbiamo ottenuto deve essere visualizzato come una lettera.
Da lì possiamo dedurre quale valore di offset dobbiamo aggiungere al Nivelle per inviarlo al
display LCD come carattere ASCII.
Prendilo.
Quindi, se il bit di riporto è impostato, significa che il numero è un 9 o meno.
E così lo inviamo a una subroutine chiamata chiedendo il prep basso che semplicemente aggiunge un offset inferiore al livello
e lo rimanda indietro.
Aggiungerà l'offset.
Abbiamo capito prima che sia 0 0 1 1 0 0 0 0.
Se il carry bit è chiaro, significa che il risultato matematico è negativo e indica che il nibble
deve visualizzare una lettera.
Quindi salterà questo comando di chiamata e chiamerà invece la subroutine di prep di Aski che aggiunge l'offset per convertire il romanzo in
una lettera ASCII da A a F ..
Ora, prima di andare a guardare i sottomarini, voglio solo che tu
te ne accorga e ricorda che quando chiamiamo la subroutine bassa prep di Aski quando ritorna chiamerà immediatamente il separte prep di Aski.
Quindi vediamo cosa succede lì.
Scorrendo verso il basso verso le due subroutine che stanno iniziando qui alla riga duecento otto nel mio codice.
Cerca solo le etichette.
Quindi la subroutine di prep basso in ASCII aggiunge semplicemente l'offset.
Abbiamo capito prima
e
poi lo rispediamo immediatamente sequestrato la prossima linea che chiama il subthme alto prep di ASCII.
Quindi viene qui.
Carichiamo il registro W con il byte che è o una lettera esadecimale o il livello inferiore o un numero
che è già stato convertito in ASCII.
In questo precedente sottoprogramma facciamo un rapido controllo per vedere quale è.
Ora diciamo che era un esadecimale A che è decimale 10.
Saltò la chiamata al Peploe 17 ASCII.
Quindi, quando i dati vengono trasferiti qui utilizzando il GPS 0 7 8, ricorderai che abbiamo cancellato quel punto superiore
quando abbiamo memorizzato il numero in quel registro generale.
Quindi se fosse in un registro che leggerà 0 0 0 0 1 0 1 0 i 4
bit superiori saranno tutti zeri.
Tuttavia se è già stato convertito in un numero ASCII significa che abbiamo aggiunto l'offset di 0 0 1 1
0 0 0 0.
Il bocconcino superiore avrà il set di Savitz.
Infatti saranno le quattro e le cinque.
Quindi dobbiamo fare un rapido test di bit che facciamo qui alla riga 216.
Ora l'ho usato cinque, ma avrei potuto usarlo anche se il bit 5 è impostato su alto, il che significa che
è già stato convertito qui.
Non cambiamo nulla.
Lo rimandiamo indietro da dove proviene.
Se tuttavia il bit non è impostato ad alto significa che il valore è esadecimale da A a F ..
Quindi saltiamo il comando di ritorno.
Aggiungi al Nessus l'offset necessario per convertirlo in una lettera da A a Sandbach.
Ora c'è un sacco di modi in cui puoi farlo, ma questo è un modo e il modo in cui l'ho fatto.
Se non ti piace, non scrivere il tuo codice.
OK torniamo al punto in cui abbiamo chiamato la nostra linea di subroutine.
Centocinquantotto, quindi ora abbiamo detto
che ora abbiamo il nostro numero che è stato convertito in un valore ASCII e ora inviamo
il nostro un byte al display LCD un nibble alla volta proprio come facevamo prima.
Niente che tu non abbia già visto.
Facciamo uno scambio mettendo il morso nel registro con i bocconcini girati intorno.
Cancelliamo il file stampabile e quindi copiamo il piccolo bocconcino superiore con il fermo C e lo inseriamo nei perni
di babordo.
Ora non dimenticare il bit per Port C deve essere impostato in alto perché questa è la linea r per il display LCD.
Quindi lo impostiamo in modo che il display sappia che questo è un personaggio che non inviamo a un comando.
Quindi eseguiamo il trigger della linea utilizzando lo stesso esatto impulso di ciascuna subroutine che abbiamo usato prima.
Quindi carichiamo nel boccone inferiore.
Scusate.
Mandalo sul display esattamente nello stesso modo e voilà abbiamo convertito il nostro personaggio in
ASCII e lo abbiamo inviato al display.
Il cursore si sposta su uno pronto per ricevere il carattere successivo dopo la conversione e la scrittura di tutti e
tre i caratteri sul display.
Ci fermiamo quindi per un momento.
Puoi rimuoverlo se vuoi, ma ciò dà al display solo un secondo effettivamente superiore a zero secondi
di otto secondi se ti ricorderai di visualizzare effettivamente il numero in modo che i numeri lo cambieranno sopra gli intervalli
di otto secondi a zero punti.
Torna quindi all'inizio della routine principale.
Controllando per vedere se il convertitore da
A a D inizia a controllare il convertitore EDT per vedere se ha il nostro numero per noi.
OK, facciamo prima un backup qui.
Esegui il backup fino alla prima conversione che è la riga 27 nel mio codice perché stiamo valutando il nostro display
da sinistra a destra.
Invieremo prima il più alto nibble del secondo nibble, che è il più alto nibble del byte
inferiore uscito dal convertitore A D.
Quindi il terzo nibble che è il livello più basso del byte inferiore perché il numero con cui abbiamo a che fare è
solo di 10 bit.
Il byte superiore ha tutti gli zeri nel nibble superiore che possiamo ignorare completamente quel nibble.
Il nibble inferiore ha solo i due bit più bassi.
Quindi il numero più alto di una preoccupazione sarebbe tre.
Quindi possiamo effettivamente imbrogliare e tralasciare un'intera pila di questo codice perché non abbiamo bisogno di controllare se è un numero
o una lettera che sarà mai superiore a 3 e B non abbiamo bisogno di eliminare il nibble superiore.
Quindi qui puoi vedere che in realtà ho lasciato tutto il codice, anche se questo non è necessario, non abbiamo bisogno
di chiamare la preparazione ASCII in alto.
Non è necessario eseguire un controllo di sottrazione e controllare il bit di stato.
Non fa male nulla di ciò che abbiamo fatto, ma non ne abbiamo avuto bisogno.
Potrei aver appena aggiunto l'offset per i numeri sputare fuori il LCD sputare sul display LCD e due stuzzichini
e voilà siamo stati sul nostro primo personaggio.
Ma dov'è il divertimento in questo.
Quindi ho lasciato tutto questo codice in modo da poter vedere comunque il processo.
Tutto ciò è stato molto complesso e non volevo confondere le cose, quindi costruisci il tuo circuito copia e incolla
il codice in un progetto e programma la tua scelta.
Abbiamo fatto tutto ciò solo per poter vedere una lettura diretta dal nostro plettro e dal convertitore A D.
Ora puoi vedere qui ho usato un pod.
Quindi potrei ottenere il pieno swing da zero a 3 F F che è il numero più alto che puoi ottenere e 10 bit puoi sostituire il
pot con un termistore e un resistore è un partitore di tensione o sei CSL.
Ma ora puoi calibrare le cose perché sai esattamente quali sono i numeri che
il convertitore produce in base alle condizioni dei tuoi sensori.
Tutto ok.
Finisci il tuo caffè.
Te lo sei meritato.