Il manuale di Arduino: Guida completa by Paolo Aliverti
autore:Paolo Aliverti [Aliverti, Paolo]
La lingua: ita
Format: mobi, epub
Tags: Technology & Engineering, Elettrotecnica, Tecnologia, Elettronica, Ingegneria, Electronics, Telecommunications
ISBN: 9788868953416
editore: LSWR
pubblicato: 2016-05-18T22:00:00+00:00
Assembler
Lâassembler è un linguaggio a bassissimo livello: quando lo usate, state parlando quasi la stessa lingua del calcolatore. In assembler agite direttamente con le parti del chip e potete, per esempio, copiare dati da un registro allâaltro o svolgere operazioni di base. Lâassembler si può convertire facilmente in codice macchina con una semplice tabella di conversione. Il C e i linguaggi ad alto livello facilitano molto la vita, anche se poi devono essere convertiti in sequenze di codice macchina di cui spesso non sappiamo nulla. Generalmente, non si sa come una variabile o un ciclo for siano convertiti in codice macchina.
Non è mia intenzione inserire qui un corso di assembler, ma vi mostrerò comunque come usarlo direttamente allâinterno dellâIDE di Arduino e vi illustrerò qualche impiego pratico.
Innanzitutto, lâassembler può essere codificato direttamente nello sketch usando una funzione speciale:
__asm__("istruzioni in assembler");
à possibile utilizzare anche una forma più elegante, senza i segni di sottolineatura: asm volatile ( " asm " );
Ogni istruzione deve stare su una singola riga e per âandare a capoâ si devono inserire i due caratteri
.
Utilizzando unâistruzione assembler, potete resettare la scheda con un effetto simile alla pressione del tasto RESET.
asm volatile (" jmp 0 ");
La funzione fa sì che il puntatore al programma riparta da 0, che equivale a fare un reset senza però spegnere âelettricamenteâ la scheda. Lâassembler è molto più difficile da scrivere del C e richiede una profonda conoscenza del microcontrollore. Il vantaggio è che un programma scritto in questo modo è molto più veloce.
La pausa più breve ottenibile con Arduino è di 2 microsecondi, perché è invocata richiamando una funzione delayMicroseconds(), la cui chiamata richiede alcuni cicli di elaborazione. Potete inserire delle micropause usando lâistruzione assembler nop, cioè ânessuna operazioneâ. Il microcontrollore sarà comunque impegnato âa far nullaâ per un ciclo. Il minimo ritardo sarà pari a 62,5 nanosecondi. Invocatelo in questo modo:
asm volatile ("nop
");
Per realizzare pause maggiori, aggiungete più nop, uno di seguito allâaltro. Si possono trovare ulteriori informazioni allâindirizzo http://bit.ly/arduino_asm (in inglese).
Unâoperazione che potrebbe esservi molto utile è la possibilità di agire contemporaneamente su più pin. Per farlo, dovrete scrivere dei bit direttamente nei registri. Un registro è una
ârastrellieraâ che contiene 8 bit, modificando un singolo bit potete cambiare il comportamento o lo stato del pin associato. In questi casi, non è necessario utilizzare lâassember perché nellâambiente di Arduino sono state definite delle variabili che vi danno lâaccesso diretto ai registri. Esistono tre tipi di registri:
⢠DDR â è il registro per configurare i pin come ingressi o uscite;
⢠PORT â è il registro per impostare lo stato dei pin quando sono usati come uscite, oppure per leggerlo quando si comportano da ingressi;
⢠PIN â è il registro da usare per la lettura dei pin.
Ogni microcontrollore ha più gruppi di registri. Per esempio su Arduino Uno sono usati tre gruppi di registri:
⢠DDRB, PORTB e PINB â per i pin digitali da 8 a 13;
⢠DDRC, PORTC e PINC â per i pin analogici da A0 a A5;
⢠DDRD, PORTD e PIND â per i pin digitali da 0 a 7.
scaricare
Il manuale di Arduino: Guida completa by Paolo Aliverti.epub
Questo sito non memorizza alcun file sul suo server. Abbiamo solo indice e link contenuto fornito da altri siti. Contatta i fornitori di contenuti per rimuovere eventuali contenuti di copyright e inviaci un'email. Cancelleremo immediatamente i collegamenti o il contenuto pertinenti.
Corso di programmazione per ANDROID by Corso di programmazione per android (2012)(1149)
Steve Jobs (Italian Edition) by Walter Isaacson(1107)
Cibrario by cibrario(1019)
Android 6 by Massimo Carli(1009)
La mucca viola by Seth Godin(998)
10.16 di 1 by Kelly James Patrick(946)
Virus by Bluebook(942)
Lavoro vivo by Unknown(938)
Homo Deus by Yuval Noah Harari(937)
faggin - Silicio by Federico Faggin(825)
Business Adventures by John Brooks(804)
Terapia totale by Michael Palmer(778)
Creare progetti con Arduino For Dummies: Con 12 progetti facili da realizzare! by Brock Craft(767)
Connessi e isolati by Manfred Spitzer(736)
Emergenza smartphone by Manfred Spitzer(735)
Mac per tutti 05 by A. E. Stanley(711)
Mac per tutti 08 by A. E. Stanley(692)
Dentro un PC: Guida pratica per i newbies dell'assemblaggio (Italian Edition) by D'Andrea Felice(683)
Smartphone sicuro (Italian Edition) by Gianluigi Bonanomi & Domenico Martini(667)