Loading
Note di Apprendimento
Study Reminders
Support
Text Version

Interfacciamento Sette Segmento Visualizza con MSP430

Set your study reminders

We will email you at these times to remind you to study.
  • Monday

    -

    7am

    +

    Tuesday

    -

    7am

    +

    Wednesday

    -

    7am

    +

    Thursday

    -

    7am

    +

    Friday

    -

    7am

    +

    Saturday

    -

    7am

    +

    Sunday

    -

    7am

    +

Introduzione a Embedded System Design Professor Dhananjay V. Gadre Netaji Subhas University of Technology, New Delhi Lecture 27 Interaffrontando Seven Segment Visualizza con MSP430; Low Power Modes in MSP430 Hello, e Benvenuti in una nuova sessione, per il corso online sull'introduzione a Embedded System Design. In questa sessione analizzeremo due aspetti, uno è quello di aumentare la nostra capacità del microcontrollore di interagire con il mondo esterno attraverso le interazioni, tra cui la visualizzazione dei numeri. Fino ad ora abbiamo visto come possiamo usare il micro controller per accendere e spegnere i LED, ma un LED può darvi solo informazioni binarie, qualcosa è acceso, qualcosa è spento. Ma se vorreste che il microcontrollore vi mostrasse numeri o altre informazioni, dovremmo usare un dispositivo di visualizzazione, come ad esempio un display da 7 segmento.
Ovviamente possiamo anche utilizzare un display a cristalli liquidi e altri display grafici a cui arriveremo, in una lezione successiva. Ma in questa lezione andiamo a vedere come possiamo collegare un singolo display del segmento 7. Per il motivo che è facile collegare un singolo display di segmento 7 o un paio di display da 7 segmento ad un microcontrollore. Ma visto che il numero di 7 visualizzazioni di segmento aumenta, non sarebbe possibile connettersi a gran numero di 7 visualizzazioni di segmento o gran numero di LED ad un microcontrollore senza aumentare la complessità dal lato software.
In questo momento, analizzeremo come possiamo collegare un singolo display a 7 cifre di segmento.
Ora, come sapete, nel nostro inventario dei componenti elettronici, che avevamo condiviso con voi prima, e spero che siate in grado di mettere le mani su un display a quattro cifre da 7. Noi utilizzeremo lo stesso display a quattro cifre di 7 secondi nel nostro esperimento ma solo in questo modo potremo abilitare solo una delle cifre. In una successiva lezione mostreremo come possiamo controllare una quattro cifra o per quella materia, una cifra più grande, un numero maggiore di cifre. Ma iniziamo con le nostre interazioni qui oggi, su come visualizzare le informazioni su un singolo display LED da 7 segmento. (Fare Slide Time: 02.34) chiamiamo questo esperimento, chiamiamo questo esercizio, HelloSSD perché stiamo parlando con un display da 7 segmento. Come abbiamo visto in passato, i display del segmento 7 sono di due tipi; uno può essere chiamato catodo comune o, quindi il catodo comune sarà, qui abbiamo i LED di visualizzazione, questo sarà il catodo comune. E poi si avrebbero i 8 piedini di segmento, a, b upto dp e questo è un, b, c, d, e, f, g e qui si ha dp. Allo stesso modo, si può anche avere un anodo comune.
Quindi ora la parte comune è l'anodo comune e si ha lo stesso display con una virgola decimale e si ha a dp.
È possibile scegliere uno di questi display, nel nostro caso abbiamo un comune display di segmento catodo 7. Ora, vediamo come possiamo interfacciarlo al nostro microcontrollore MSP430, utilizzando il nostro lunchbox MSP430. La connessione ad un display di segmento 7 non è molto diversa dalla connessione di un microcontrollore ad un LED, è solo che un display da 7 segmento è composto da 8 LED.
Quindi, si tratta solo di connettere 8 pin ad un singolo display di segmento 7 e di trasformare i segmenti appropriati su e giù, in modo da poter visualizzare il numero desiderato.
Nel nostro esercizio, noi quello che stiamo facendo siamo connettendo un interruttore a uno dei pin di porta e stiamo connettendo 8 pin del microcontrollore ai 8 pin del display del segmento 7.
E ogni volta che stampa e rilasciamo un bottone, ogni volta che stampa e rilasciamo quell' interruttore conterà il valore, dal conteggio che va da 0, 1, 2, fino al valore massimo. (Vedi Slide Time: 05.06) Stiamo mostrando il conteggio in modo esadecimale, il che significa che possiamo visualizzare numeri da 0 a F, da 0 a 9 e poi A, B upto F. Così, questo è quello che faremo in questo esercizio.
Quindi, tracciamo una sorta di diagramma di blocco qui è il mio microcontrollore MSP430, ecco il mio interruttore collegato ad un pin che capita di essere P2.3 in modalità pull-up e la porta uno pin P1 pins tutti 8 di essi vengono utilizzati per collegarsi al display del segmento 7 con appositi limiti di corrente limitanti e poiché questo è un display catodico comune, stiamo per mettere a terra il comune pin catodico del display del segmento 7. Ovviamente in questo esercizio non abbiamo una singola cifra, abbiamo quattro cifre.
(Riferimento Slide Time: 06 :08) Questo è il diagramma di Fritzing per la disposizione. Qui vediamo la nostra scatola del pranzo, qui vediamo il nostro breadboard e sul nostro breadboard abbiamo un display a quattro cifre, ma come vedete solo una cifra viene utilizzata. Questo display da 7 segmento come vedete qui, ha una cifra 1, cifra 2, cifra 3 da qualche parte e cifra 4, qui cifra 3 e cifra 4. Questi sono i piedini comuni di ciascuno di questi display e poi si hanno a, b, c, d, e, f, g e dp. Stiamo per collegare tutti i 8 segmenti a tramite dp, e poi useremo solo uno dei piedini comuni a cifra come vediamo qui dentro.
Non importa quale si usa; si può usare la prima cifra o la seconda cifra. Tutto quello che devi fare è, devi terra che cifra comune cifra, segnale comune. Ovviamente abbiamo anche collegato ai condensatori qui, questo è per voi sapere ridurre il rumore in questo caso. E poi abbiamo questo interruttore qui, con la resistente pull-up. E abbiamo anche collegato un condensatore qui, in modo da debounce che sebbene stiamo facendo debounce anche nel software. Quindi, vediamo qual è il codice. (Fare Slide Time: 07.50) Ora, qui come abbiamo sempre visto che includiamo il file di intestazione MSP30.h. Poi, abbiamo definito il nostro interruttore essere su BIT3 e in realtà siamo collegati alla porta 2, BIT3. E qui abbiamo i nostri segmenti del display del segmento 7, A tramite DP, sono collegati alla porta 1,0 fino alla porta 1,7 pin. Abbiamo usato limitanti resistenze, e se si sceglie 1 chilo ohm o valore di resistore intorno a quello, questo dovrebbe essere, che dovrebbe funzionare bene.
Quindi, quello che stiamo facendo è, stiamo definendo che il segmento A del nostro display, che è come questo, a, b, c, d, e, f, g e dp che abbiamo collegato il segmento A a BIT0 che significa P1.0, segmento B a P1.1 e così via. Ora, su questo display, cosa si desidera visualizzare, vorremmo visualizzare i numeri.
(Riferimento Slide Time: 09 :03) Ora, visualizzando i numeri su un display da 7 segmento, uno deve essere molto attento. Ad esempio, se si desidera visualizzare 1, allora o lasciarci partire con 0, quindi la visualizzazione 0 sarà così. Questo significa che tutte le cifre tranne g e dp sono spente. Questo è un, b, c, d, e e f quando si desidera visualizzare 1 poi B e C sono accesi, quando si desidera visualizzare 2 poi si ha a, b, d, e, g sono accesi e così via.
Così, bisognava creare una mappa che per una data cifra per visualizzare quale dei segmenti deve essere attivata.
(Riferimento Slide Time: 09.47)
E che abbiamo elencato in questa sorta di hash definire, dove stiamo dicendo quando vogliamo visualizzare 0, questo D0 significa quando vogliamo visualizzare 0. Quale dei segmenti dovrebbe essere accesa, quindi stiamo dicendo segmento A, B, C, D, E e F nient'altro. Quando vogliamo visualizzare il 1 è il segmento B e C, come ho accennato e così via. E per questo è menzionato per tutte le 16 cifre, da 0 a 9 e poi a, b, c, d, e e f.
Ovviamente alcuni caratteri alfanumerici appariranno in maiuscolo e alcuni appariranno in piccole lettere e uno può vedere come appariranno simulando questi numeri su un foglio grafico. Così, questa parte del codice ti dice che, quando vuoi visualizzare un numero che delle cifre dovrebbe essere, quale del segmento dovrebbe essere acceso. (Fare Slide Time: 10 :42) Ora, veniamo alle più definizioni. Qui abbiamo un hash definito stiamo dicendo, una sorta di maschera che abbiamo creato che non è altro che tutte le cifre, come vedete tranne la virgola decimale non stiamo usando la virgola decimale in questo esperimento, a parte questo abbiamo ormeggiato tutti i bit. Quindi, quando dico segmento A, quando dico seg A, e abbiamo visto cosa è seg A, vediamo qui, seg A è BIT0 e quello che è BIT0, BIT0 è, BIT0 è di tutti i 8 bit il 0 bit è 1, questo è il significato di bit 0.
Quindi, questo è tutto 0, questo è da 0 a 7, 0, 0 tutti sono 0 tranne 1. Che cos' è BIT1, invece del 0 bit le TSI sono accese. Questo è da 0 a 7, in questo caso significa che sono 1 e questi sono tutti zeri. Quindi, quello che abbiamo fatto con quella maschera è, stiamo oramai di tutte le maschere valori per il segmento A, B, C, D e così via. E poi siamo, abbiamo invertito quel valore, abbiamo trainato quel valore e vedremo perché. Poi abbiamo creato una schiera, e questo a proposito è una schiera che ha 16 cifre, che hanno numeri da 0 a, per visualizzare numeri da 0 a F.
E poi abbiamo definito una variabile, l'abbiamo definita volatile, abbiamo coperto interruzioni e sappiamo che l'volatile è di solito quando si interagisce tra il programma principale e la subroutine di interruzione. In questo caso non c'era bisogno, non c'è bisogno di dichiarare questa variabile come volatile. Inoltre, non serve che questa variabile, perché fuori dal loop principale sembra essere dichiarata come variabile globale, non c'è bisogno di questa variabile per essere una variabile globale, ma non fa male.
Ora, andiamo dentro, ora abbiamo il codice principale e come abbiamo sempre visto abbiamo disabilitato il timer watchdog orando la password con il bit richiesto per fermare il watchdogtimer. E poi scriviamo questa combinazione di bit nel registro di controllo del timer watchdog, questo è il senso di questa affermazione, una volta che siamo disabili questo.
Ora, una volta resettato il sistema, si va a, che orologio che userà per la CPU, userà l'orologio M e l'orologio M sarà ricavato dal DCO e il DCO funzionerà a 1,1 megahertz, che non siamo cambiati che sia lo stato di reset di MSP430 e siamo felici di usare il nostro pranzo a quel ritmo.
Poi, il primo compito che facciamo è definire la direzione della porta 1. Abbiamo definito tutti i bit come outputs dal segmento A al punto decimale, stiamo usando tutti i bit, quindi tutti i piedini di porta 1 abbiamo definito come outputs. E poi per la porta 2 abbiamo definito questo bit come input rendendolo 0, quando ce la facciamo 0 diventa input, quando ce la facciamo 1 diventa output. Una volta definite queste due direzioni di porta, siamo entrati in un loop infinito mentre 1 e da qui resteremo in questo loop per tutto il tempo.
In questo cosa stiamo facendo, stiamo aspettando che venga premuto un interruttore. Quindi, se l'interruttore non è premuto si attende, il momento in cui viene premuto lo switch si andrà all'interno.
Il che significa, quando l'interruttore non viene premuto si ottiene una logica 1, il momento in cui lo switch viene premuto si andrà qui. È probabile che rimbalia, sebbene ci sia messo un condensatore fuori così il condensatore lo filtrerà. Ma anche se lo fa, lo debozziamo a causa di questo ritardo Loop. Poi aspettiamo che l'interruttore venga rilasciato, il che significa per tutto il tempo che rimane 0 minuti di attesa qui.
E poi quando viene rilasciato, di nuovo è probabile che rimbalia e poi dopo il ritardo, andrà in alto e quando verrà rilasciato l'interruttore, aumenteremo la nostra variabile ci contiamo. Il valore iniziale di quella variabile è stato impostato su 0 e il momento in cui si incrementa il conteggio si desidera controllare i limiti perché vogliamo contare solo da 0 a F, cioè 0 a
15. Se continuate a premere a un certo punto il valore di io diventerò 16 ma 16 è, non potete visualizzare qui. Quindi, si sta per reimpostare il valore della variabile a 0.
Quindi, stiamo verificando che dopo l'incremento se il valore della variabile è superiore a 15 impostate il valore su 0, se non si procede. E quello che fai, stai per emettere qualcosa sulla porta 1 in modo da visualizzare il numero ma prima che qualunque fosse stato visualizzato precedentemente hai portato quel valore e, e questo con il DMASK.
E DMASK come si sa, non è altro che il o di tutti questi bit invertiti che significa che sta andando a disabilitare quei LED che sono accesi e ci sta andando o con un numero che non è altro che un array, che il nome schiera è composto da cifre che si sta andando a recuperare un valore a seconda del valore di I, a seconda del valore di me che vedete qui, si va a prendere quel po' da uno di questi, che sarà uno di questi numeri.
E questi numeri che abbiamo già visto sono definiti qui, qui. Quindi, si va a prendere uno di questi valori a seconda di quello che è il valore di i e quel valore che si sta andando in uscita sulla porta 1. Quindi, cosa farà, visualizzerà quel numero e quel numero rimarrà finché non si preme un interruttore perché si tornerà qui e si attende che si preme un interruttore.
Quindi, questo ti consiglio di ricostruire questo codice e di scaricarlo nella tua casella di pranzo MSP430 e giocare con esso, in modo da capire cosa sta accadendo, come funziona il display del segmento 7. Si può giocare con il valore delle resistenze come ho accennato qui, se stiamo usando un resistore 1k kiloohm, si può aumentare. Si deve notare che l'intensità del display dovrebbe scendere, se si riduce si deve vedere che l'intensità del display aumenterà e così via.
Quindi, vi consiglio di sperimentare il setup tanto quanto vorreste, in modo da ottenere utili intuiti su come utilizzare un display di segmento 7 per mostrare informazioni da un'applicazione incorporata al mondo esterno. Ora, ovviamente se abbiamo solo 1 cifre da visualizzare, non è di molto utilizzo. E nella vita reale si può volere un display un numero più grande. Ora se usi un numero maggiore quali opzioni abbiamo.
(Riferimento Slide Time: 18 :03) Qui possiamo usare due cifre. Quindi, su un MSP430 posso facilmente farlo, ho due porte. Quindi, sulla porta 1 posso collegare un display e la porta 2 posso collegare sotto il display, a patto che non stia usando un cristallo esterno perché il cristallo esterno riprende alcuni pins della porta. Ma se voglio fare dei numeri al di là di questo, ho un problema perché non ho abbastanza piedini. E il modo di gestire questo è quello che abbiamo coperto nella lezione precedente, di usare una tecnica multiplexing.
Nella tecnica multiplexing useremo display multipli e, nel nostro caso, abbiamo accesso a un display a quattro cifre, quindi connetteremo la porta da 1 a 4 cifre e i segmenti, le cifre saranno controllate qui, qui, qui, qui attraverso i driver di transistor di NPN. Da, quindi questo è driver NPN e ovviamente qui abbiamo resistenze, vedi questi sono tutti i 8 pin, abbiamo 8 resistenze e 4 pin dalla porta 2 possiamo usare per controllare più display da 7 segmenti.
Ma il vantaggio che si ottiene controllando un tale display utilizzando meno piedini bisogna pagare in qualche modo. E in questo caso il pagamento avviene attraverso un overhead software, il che significa in qualsiasi momento solo una cifra sarà accesa. E come si fa a cambiarlo? questo è l'argomento che copriremo in una successiva lezione, come possiamo cambiare da prima a secondo a terza a quarta per poi continuare a farlo in background mentre il tuo loop principale può fare altri lavori di conteggio degli eventi, e contando i numeri e averli visualizzati su questi display a quattro cifre.
Vi mostreremo un solo esperimento usando, dopo aver coperto alcune informazioni sui timer, mostreremo come possiamo utilizzare l'infrastruttura timer di MSP430 a multiplex più display da 7 segmenti, riducendo così l'utilizzo di piedini fisici di MSP430microcontroller. Questo sarà un argomento di una lezione successiva, fino a quando in questo uno si prega di giocare con quel setup di controllo di un display a singola cifra e si può ottenere qualche intuizione.
Avendo collegato un display da 7 segmento al microcontrollore MSP430, siamo ora pronti a valutare e comprendere un altro aspetto importante di MSP430, uno che è caratteristica di corridoio e saliente di MSP430 che è la sua capacità di passare dalla modalità attiva dove tutte le periferie, la CPU e tutto il microcontrollore stanno lavorando al vostro, alle massime capacità.
È possibile passare da quello a una modalità a basso consumo e ci sono diverse modalità di alimentazione a basso consumo, che consentono di conserve di potenza. Quindi, se si scopre che la propria applicazione non ha bisogno di essere attiva, è possibile passare alle modalità di bassa potenza e vedremo quante modalità di alimentazione inferiori MSP430 offre, e come richiamarle, e come ripartire dalle modalità di basso consumo in modalità attiva in modo da poter elaborare le informazioni come e quando si ritiene necessario.
(Riferimento Slide Time: 21.27) Quindi, stiamo andando a considerare le modalità di bassa potenza, le modalità operative di MSP430 sono 6 in tutto. La prima è la modalità attiva dove tutto sta funzionando, la CPU sta funzionando, le periferie stanno lavorando tutte le fonti di clock stanno lavorando, tutti i segnali di clock stanno lavorando è possibile scegliere di instradare qualunque segnale di clock in opportune periferie. Ma una volta che si è, una volta deciso, una volta che si è ritenuto che in una situazione particolare, non si desidera essere in modalità attiva, è possibile scegliere varie modalità di bassa potenza. E ci sono cinque modalità di alimentazione a basso consumo e vedremo quanta riduzione di potenza avviene in ognuna di queste modalità e si può scegliere uno opportunamente. Vedremo come inserire quelle modalità e come uscire da quelle modalità.
(Riferimento Slide Time: 22.13) Ora, nella modalità attiva se il tuo processore è funzionante, se il tuo sistema sta funzionando la CPU è al lavoro a 1 megahertz, allora questo è, questi sono il diagramma di funzionamento dal datasheet di MSP430. E si vede che, per 1 megahertz che si sta per consumare questa è la corrente attiva e questa è la tensione di alimentazione, si può andare da circa 1,8 volt a 3,6 volt che quando il DCO sta lavorando a 1,1 circa 1 megahertz la quantità di corrente è, questo è di 1 milliampere. Quindi, questo è pressappoco 2 - 300 micro amperi, quindi questo è quello che è. A 2,2 volt di tensione di alimentazione si può passare da a 230 microamperi a 3 volt è di circa 330 microamperi.
E qui se la temperatura cambia poi c'è un impatto sulla frequenza, la frequenza DCO e poi si vede anche il consumo corrente cambia. Quindi, questo è per quanto riguarda il consumo corrente di MSP430 in modalità full active a varie frequenze, è possibile stimare da qui. Ad esempio, se il tuo sistema è in esecuzione a 16 megahertz a 3,5 volt, puoi immaginare che il suo andare a consumare circa 4,5 milliamperi, a 16 megabyte e che sia una quantità significativamente ridotta di corrente.
Quindi, dovresti fare riferimento a questi grafici ogni volta che devi fare delle stime su quanto budget corrente, quanto, quante specifiche di alimentazione devi prevedere in modo che il tuo sistema funzioni all'infinito.
(Riferimento Slide Time: 23 :55) Se non siete interessati a rimanere in modalità attiva, allora la prima modalità a bassa potenza si chiama LPM0, LPM stand for, Low Power Mode 0. Ciò che accade in questo, la CPU è disabilitata che significa che non si sta eseguendo alcun programma ma alcune periferiche, a seconda di quale orologio scelgono di utilizzare alcune di quelle periferie possono continuare a funzionare. Perché, perché ACLK e SMCLK sono attivi. MCLK che è il Master Clock, che alimenta la CPU è spento il che significa che la CPU non funziona. E la corrente di alimentazione a 1 megahertz scende da quella 230 micro amperi fino a 56 micro amperi. Devo ribadire qui, che perché un orologio e l'orologio SM sono attivi i periferici, se avete scelto un orologio o un orologio SM come l'orologio per quelle periferie, quelle periferie continueranno a funzionare.
(Riferimento Slide Time: 24 :49) Oltre LPM1, LPM0 puoi scegliere di andare per LPM1. Anche qui la CPU è disabilitata. Il tuo orologio e l'orologio SM sono ancora attivi, il tuo MKCL è disabilitato. Ora, qual è la differenza tra LPM0 e LPM1, se le prime due caratteristiche sono comuni in entrambi, vedete qui anche voi. La parte è che, se il DCO, l'Oscillatore Controllato Digitalmente è disabilitato, se il DCO non viene utilizzato per alimentare l'orologio SM. Come noto, l'orologio SM deriva l'orologio dal DCO così come l'oscillatore di cristallo VLO e a bassa frequenza.
Se hai scelto l'orologio SM per non essere fonte da DCO, allora il DCO che è l'oscillatore così come il generatore di bias DC per l'oscillatore DC sono disabilitati e questo ti salva di potere.
(Riferimento Slide Time: 25 :49) Poi si può andare a LPM2 in cui la CPU è disabilitata. Ora, l'orologio M e l'orologio SM entrambi sono disabilitati il DCO può essere accesa, il generatore DC di DCO rimane abilitato. E il motivo per cui il generatore DC è abilitato è perché il generatore DC biglie l'oscillatore controllato digitalmente. Se la bias è accesa, il DCO, il DCO può essere trasformato in fretta. L'è, Un orologio rimane attivo e la corrente di alimentazione scende a circa 22 micro amperi.
(Riferimento Slide Time: 26:30) Beyond LPM2, puoi andare per LPM3. Qui, la CPU è disabilitata il tuo orologio M e l'orologio S sono disabilitati anche il generatore DC DCO è disabilitato. Ora, se il generatore DC è disabilitato, se si desidera passare alla modalità attiva ci vorrà un po' di tempo perché prima il biasing verrà acceso e poi l'oscillatore della DC girerà su di esso ci vorrà del tempo per tornare in modalità attiva. Rimane attivo un orologio di corso che significa che alcune periferie possono scegliere di utilizzare un orologio per il suo funzionamento e la fornitura corrente di alimentazione a una stagista 0,5 micro amperi a 2,2 volt.
(Riferimento Slide Time: 27 :09) Qui abbiamo LPM4. E ora la CPU è disabilitata, l'orologio A è anche disabilitato anche il resto degli orologi è disabilitato, il tuo generatore DCO è disabilitato, l'oscillatore di cristallo viene arrestato.
E ora si vede, questa è la modalità meno di consumo di potenza in cui sarà mantenuto solo il contenuto del registro, il resto non funzionerà perché tutti gli orologi sono disabilitati e la tua corrente di alimentazione scenderà a mero 0,1 microampere. (Vedi Slide Time: 27:42) Ora, puoi usare scegliere di inserire queste modalità a basso consumo utilizzando i 4 nel registro di stato e questi 4 sono questi e vedremo come questi bit, le combinazioni di bit potrebbero essere richiamate in modo adeguato per entrare in una o nelle altre modalità a basso consumo.
(Riferimento Slide Time: 28:00) Quindi, qui abbiamo quando tutti i bit sono 0 sei nella modalità attiva e vedi questo è il contenuto del registro di stato. E abbiamo sempre accennato, che quando si reimposta il proprio microcontrollore, il registro di stato viene sdoganato, il che significa che tutti i bit nei registri di stato sono 0.
Il che significa, dopo aver resettato il tuo video inserire nella modalità attiva, dopo che puoi scegliere se vuoi fare il, entrare nella modalità LPM0 fai CPU di bit uguale a 1 e LPM1 hai morso questo, un po' acceso e acceso e così via. E ovviamente il tuo CCS, il Codice Composer Studio ti permette di invocare varie modalità senza doti preoccupare di quali bit accendere e spegnere. Ora, se si entra in una qualsiasi modalità di alimentazione bassa, l'unico modo in cui è possibile uscirne è tramite interruzioni e interruzioni funzionerà solo se si è abilitata l'interruzione, il che significa che l'indicatore di interruzione globale deve essere acceso. Quindi, è possibile utilizzare questa macro e utilizzarla nel codice per uscire dalla modalità a basso consumo oppure utilizzare questa combinazione di comando per uscire dalla modalità a basso consumo.
(Riferimento Slide Time: 29:22) Ora lo illustreremo con l'ausilio di un codice per mostrare questa operazione. Ora, abbiamo visto le varie modalità come invocarle. Dobbiamo mettere insieme, dobbiamo considerare le modalità a basso consumo e le interruzioni insieme perché se l'MSP è progettato per rimanere in modalità a basso consumo per la maggior parte del tempo, va bene se volete uscirne dovete prendere il supporto di interruzioni. E spesso, il codice principale conoscerà il programma i periferici per fare il loro lavoro a seconda della modalità di bassa potenza scelta.
Se vuoi che certe periferie funzionino, devi selezionare gli orologi appropriati per l'alimentazione di quelle periferie e devi selezionare le modalità di alimentazione basse appropriate. Ma, se si vuole tornare in modalità attiva, è necessario trasformare l'interruzione generale globale che si attiva un po' come una e poi sperare che queste periferie possano generare un'interruzione ogni qualvolta si incontra qualche azione, in modo che il processore possa uscire per la modalità a basso consumo e in modalità attiva. (Fare Slide Time: 30:32) Ecco un esempio di codice, dove quello che abbiamo fatto è che stiamo utilizzando i periferici sul lunchbox. Non stiamo facendo altro; non vogliamo che tu connetti altro che il lunchbox a qualsiasi altro, sai che la connessione sul breadboard qualunque sia disponibile sul lunotto è adatta. Abbiamo un interruttore che come sapete è collegato alla porta 1 bit 3 e abbiamo un LED collegato alla porta 1 bit 7.
Ora, vediamo cosa stiamo facendo. Ciò che questo esempio di codice mostra, noi e voi dovrete giocare con questo codice e vi mostrerò quale parte vedere effettivamente l'impatto di questo programma.
Ciò che fa è, che questo programma entrerà in modalità a bassa potenza e premendo un interruttore, cioè lo switch connesso alla porta 1,3 è possibile uscirne e farci vedere cosa fa. Quindi, prima di tutto ovunque ci resettiamo siamo, la prima istruzione che stiamo eseguendo è quella di disabilitare il timer watchdog.
Poi stiamo girando la porta 1,7 bit come output e porta 1,3 come input e prima ancora, stiamo trasformando il LED collegato alla porta 1,7 di sconto. E abbiamo, questo è molto importante, dopo che ci siamo convertiti dopo aver deciso che il pin 1,3 pin dovrebbe essere input, stiamo anche abilitando l'interruzione sulla porta 1,3 nella modalità di bordo in salita e abbiamo abilitato l'interruzione su quel pin.
Così, abbiamo accesso ai registri, porta 1 interruzione abilita e porta 1 registro di selezione edge. Così, abbiamo deciso che ogni qualvolta lo switch viene premuto e rilasciato, al rilascio si otterrà un bordo in salita dovrebbe interrompere il sistema.
Poi abbiamo una variabile dichiarata I, vedremo cosa ci facciamo con esso. E poi entriamo in un loop infinito. Fuori che qui è il vostro vettore di interruzione, dove si va ad andare a wheneverthe switch è premuto. Perché, perché abbiamo abilitato le interruzioni sulla porta 1 e così ogni qualvolta lo switch viene premuto genererà un'interruzione, andrà nel vettore. E come si vede, siamo passati attraverso quello precedente, si sta dicendo che hash pragma vector è uguale al vettore di porta 1. Ma prima di questo, vediamo cosa, cosa fai qui.
Quindi, questa istruzione è molto importante, in questo momento questa istruzione eseguirà. In questo cosa si sta facendo, si sta dicendo un bit impostato nel registro SR, in modo da selezionare la modalità LPM4 e abilitare gli interruzioni globali. Ora, il momento in cui si esegue questa istruzione la CPU deve fermarsi, il che significa che non accadrà nulla finché non uscirà dalla modalità di bassa potenza, il che significa che la prossima istruzione che qui è qui non si eseguirà. Quindi, non accadrà nulla sul LED se il LED fosse spento rimarrà spento, ma se davvero fosse su di esso rimarrà accesa.
La prima volta intorno al LED sarà spento. Ora, cosa succede, si preme l'interruttore che si va in questa interruzione e in questa interruzione si sta uscendo dalla modalità a basso consumo perché, si stanno schiarendo i bit appropriati nei registri di stato. Si stanno anche abilitando nuovamente gli interruzioni e si sta reimpostando il bit nel registro di interruzione della porta 1, in modo che la prossima volta in giro quando l'interruttore viene premuto si può nuovamente registrare e interrompere. Ora, a causa di questa istruzione si andrà in modalità attiva, il che significa che quando si torna qui, eseguirà questa istruzione, che trasformerà il, che altererà il LED.
Ora, questa istruzione che si occupa, è in realtà superflua per quanto riguarda l'esecuzione di questo codice con questa istruzione attiva. Quindi, puoi giocare con questo e vedrai che ogni volta che premi lo switch si altera. E, ma se commentate questa istruzione, se commentate questa istruzione, il che significa che le interruzioni hanno davvero no, sapete, avete, non siete, sapete girando le interruzioni, quindi le interruzioni non funzioneranno. Poi, le uniche due istruzioni in questo loop sono trainare il LED, ritardare, alternare il LED, ritardare.
Quindi, in questa modalità si va a vedere che il LED va continuamente a trainare, quando, quando si commenta questa istruzione. Se commentate questa istruzione ricostruite il vostro codice e scaricatelo, vedrete semplicemente vedere LED sulla porta 1 bit 7 trainare, ad una velocità di circa, si conoscono pochi tag un secondo.
L'interruttore non ha alcun impatto perché non lo stiamo leggendo nel programma principale e l'interruzione non è abilitata ma il momento in cui si commenterà significa, quando si fa presente questa istruzione attiva come parte di questo codice, poi si vedrà che il LED è su di esso rimarrà acceso, non si toggerà, si accende solo quando si preme il commutatore che sta andando a abilitare gli interruzioni, nella routine secondaria di interruzione sta per disabilitare la modalità di alimentazione bassa, tornare indietro in modalità attiva e riaccenderà il LED, e tornerà indietro, entrando nuovamente nella modalità di basso consumo. Quindi, una volta premuto il commutatore, se sarà spento, se il LED sarà spento, rimarrà spento. Poi, quando si preme di nuovo lo switch, uscirà nuovamente la modalità di alimentazione bassa, andare in modalità attiva, alternare il LED, andare di nuovo nella bassa potenza e così via.
Quindi, questo è un esercizio interessante per vedere come si può giocare con la modalità a basso consumo, come si possono avere periferie esterne uscire dalla modalità a basso consumo. E vi consiglio vivamente, di sperimentare questo codice, appositamente giocando con questa istruzione, commentando questa istruzione o conservandola nel vostro codice per vedere l'impatto. Così, siamo fatti con la descrizione delle modalità a basso consumo, nonché come collegare il semplice display del segmento 7 ai piedini del microcontrollore MSP430. In una lezione successiva ci occuperemo di timer e altri temi. Grazie, per aver guardato