Mam problem z TIMER2 - odmierzanie czasu , najlepiej 1s.
Wartość b będzie zmieniała się - tylko co jaki odstep czasu.
Może ktoś poratować? Albo ma może jakiś swój przykładowy programik na Timer2 z wywoływanym przerwaniem?
Radzio
Wartość b będzie zmieniała się - tylko co jaki odstep czasu.
Może ktoś poratować? Albo ma może jakiś swój przykładowy programik na Timer2 z wywoływanym przerwaniem?
Radzio
// Testowanie timera 2
#define F_CPU 8000000UL
#include <avr/io.h> // dostęp do rejestrów
#include <avr/interrupt.h> // funkcje sei(), cli()
#include <avr/signal.h> // definicje SIGNAL, INTERRUPT
int b=0;
volatile uint8_t opoznienie; // zmienna określająca częstotliwość
SIGNAL (SIG_OVERFLOW2) // przerwanie od przepełnienia
{
TCNT2 = opoznienie; // przeładuj TIMER2
b++;
}
int main(void) // program główny
{
opoznienie = 0x01; // domyślna wartość dla TIMERA2
TIMSK=_BV(TOIE2); // włącz przerwania od przepełnienia
TCNT2=opoznienie; // zainicjuj TIMER1
TCCR2=_BV(CS20)|_BV(CS21)|_BV(CS22); // czasomierz 2 taktowany F_CPU/1024
sei(); // włącz obsługę przerwań
while(1) // pętla nieskończona
{
// tu wypisuje wartosc b = co ile bedzie sie zmieniac ??
}
}
