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”
Tag: avr
Programmazione AVR: Interrupt esterni
In questo articolo mostreremo come operare con gli interrup relativi al cambiamento di stato logico dei pin delle porte di I/O digitali. Effettueremo tutti gli esempi utilizzando una mcu Atmega328p con clock a 16 MHz. Leggi tutto “Programmazione AVR: Interrupt esterni”
Programmazione AVR: Porte I/O Digitali
In questo articolo vengono presentate le istruzioni per l’utilizzo delle porte I/O digitali di una mcu avr. Vengono presentati vari esempi mostrando pregi e difetti di ogni approccio. Il codice viene compilato ed eseguito su una mcu Atmega328p con clock a 16MHz Leggi tutto “Programmazione AVR: Porte I/O Digitali”
Debug firmware avr con simavr e avr-gdb
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”
Note sulla programmazione dei micro AVR
Questo articolo raccoglie alcune note sulla programmazione degli avr 8-bit Atmel con la toolchain avr-gcc. Sono note apprese da vari datasheet ed application notes che è sempre utile ricordare. Leggi tutto “Note sulla programmazione dei micro AVR”
Programmazione microcontrollori AVR con linux
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”