witam. bawię się od początku tygodnia z procesorem atmega328p. do tej pory wszytsko szło ok, dziś chciałem wziąć się za timery. znalazłem najprostszy program dot. timera0, jedna nie działa on u mnie
pozmienialem nazwy rejestrów tak, by pasowaly do mojej wersji atmegi. dioda zapala się i tak już zostaje - żadnych zmian. zegar wew. mam ustawiony na 8MHz. jestem początkujący, więc proszę o wyrozumiałość.
#include <avr/io.h>
#include <avr/interrupt.h>
volatile uint8_t count;
int main()
{
// Prescaler = FCPU/1024
TCCR0A|=(1<<CS02)|(1<<CS00);
//Enable Overflow Interrupt Enable
TIMSK0|=(1<<TOIE0);
//Initialize Counter
TCNT0=0;
//Initialize our varriable
count=0;
//Port C as out put
DDRC|=0x0F;
//Enable Global Interrupts
sei();
//Infinite loop
while(1);
}
ISR(TIMER0_OVF_vect)
{
//This is the interrupt service routine for TIMER0 OVERFLOW Interrupt.
//CPU automatically call this when TIMER0 overflows.
//Increment our variable
count++;
if(count==30)
{
PORTC=~PORTC; //Invert the Value of PORTC
count=0;
}
}