Questa guida ti mostra come scrivere un programma assembly per microcontrollore AVR ATmega328, compilarlo e caricarlo usando la pagina web costycnc.it/avr1. Inoltre, potrai leggere e modificare direttamente la memoria flash per sperimentare con bit, registri e vedere in tempo reale l’effetto sui LED onboard di Arduino.
Il codice qui sotto esegue un loop infinito in cui imposta due bit nei registri DDRD e PORTD per controllare il LED collegato al pin PD5:
.org 0
rjmp init
.org 0x68
init:
sbi 4,5 ; DDRD (I/O reg 4), imposta pin 5 come output
sbi 5,5 ; PORTD (I/O reg 5), accende il LED su PD5
rjmp init ; loop infinito
Il comando sbi
(Set Bit in I/O Register) imposta un bit specifico; con cbi
potresti invece resettarlo per spegnere il LED.
Su costycnc.it/avr1 puoi caricare il tuo codice assembly, compilarlo in binario e caricarlo direttamente nel tuo Arduino via Web Serial senza software aggiuntivi.
La pagina costycnc.it/avr1/read-write-page/ ti permette di scaricare i blocchi da 128 byte della memoria flash. Puoi modificare i dati esadecimali dei blocchi e ricaricarli, per cambiare il comportamento del microcontrollore.
Ad esempio, cambiando un 8
con a
o viceversa nei comandi sbi
o cbi
, vedrai il LED onboard spegnersi o accendersi in base alle modifiche.
Pubblicato da CostyCNC – Il portale per chi ama imparare e sperimentare con l’elettronica embedded.