Timer su Atmega2560
Salve a tutti, ho rimesso mano su datasheet di questo micro per poter mettere in funzione un timer, in quanto mi interesserebbe avere il tempo trascorso dall'ultimo reset... ho guardato le lib arduino, ma siccome voglio complicarmi la vita, ho deciso di provarne a scrivere uno io...
L'intenzione è questa:
- imposto il timer
- lo avvio
- conto il tempo trascorso
leggendo nel datasheet ho letto che bisogna impostare dei registri e l'ho fatto:
Solo che non funziona... :/ e non capisco dove sta il problema... ho provato a rileggere nel DS se ho tralasciato qualcosa, ma non mi sembra...
PS: ho messo la PORTB per poter vedere ad occhio (con un led) se funziona ma non gira :/
L'intenzione è questa:
- imposto il timer
- lo avvio
- conto il tempo trascorso
leggendo nel datasheet ho letto che bisogna impostare dei registri e l'ho fatto:
- Codice: Seleziona tutto
/*
* Mega2560_USART.c
*
* Created: 26/08/2014 10:42:09
* Author: Daniele
*/
#define FOSC 16000000L// Clock Speed
#include <avr/io.h>
#include <avr/interrupt.h>
int main(void)
{
TCCR0A|=((1<<CS11)|(1<<CS10));
TCCR0B |=(1<<WGM12);
OCR0A = 255;
DDRB = 0xFF;
PORTB = 0x00;
sei();
while(1)
{
}
}
ISR(TIMER0_COMPA_vect){
PORTB = ~PORTB;
}
Solo che non funziona... :/ e non capisco dove sta il problema... ho provato a rileggere nel DS se ho tralasciato qualcosa, ma non mi sembra...
PS: ho messo la PORTB per poter vedere ad occhio (con un led) se funziona ma non gira :/