Programmazione AVR: Timer/Counter0 e PWM

Condividi:

In questo articolo tratteremo il modulo Timer0 dell’ Atmega328p e tutte le modalità di funzionamento del generatore di forme d’onda. Timer0 è un modulo composto da un contatore e da due comparatori ad 8 bit. Il segnale di ingresso per il conteggio può essere selezionato tra diverse sorgenti che sono il clock della mcu ed un segnale applicato al pin T0. Dispone di due uscite OC0A ed OC0B (Output Compare A e B) dipendenti dal relativo comparatore. Timer0 genera interrupt su rollover del contatore e su match con ciascuno dei due comparatori Leggi tutto “Programmazione AVR: Timer/Counter0 e PWM”

Debug firmware avr con simavr e avr-gdb

Condividi:

Gli strumenti che utilizzerò per il debug del firmware sono simavr e avr-gdb. simavr è un emulatore modulare di mcu che permette anche collegare virtualmente alla mcu dell’hardware supplementare come pulsanti ecc. E’ possibile iniettare segnali, alterare lo stato dei pin e loggare su file .vcd lo stato dei registri interni. In questo articolo utilizzeremo simavr solo come simulatore. avr-gdb è il debugger gcc che utilizzeremo per l’esecuzione del firmware e per ispezionare i dati che ci interessano durante il debug. Leggi tutto “Debug firmware avr con simavr e avr-gdb”

Programmazione microcontrollori AVR con linux

Condividi:

In questo articolo configureremo un ambiente linux per la programmazione di microcontrollori AVR. Utilizzeremo come programmatore seriale una scheda Arduino 1 rev 3 senza l’IDE di Arduino in combinazione con avrdude. Il microcontrollore di destinazione sarà l’ Atmega328P presente sulla scheda. Leggi tutto “Programmazione microcontrollori AVR con linux”