Fusebits auf externen Quarz eingestellt? Ich mache das so:
Code:
#define F_CPU 3686400ul
#define COUNT F_CPU/(8ul*256ul)
#define DIVIDER 0x2
...
int takt = COUNT;
int sec = 0;
...
SIGNAL (SIG_OVERFLOW0)
{
takt--;
if(takt == 0)
{
takt=COUNT;
sec++;
...
}
}
...
void main()
{
... // Interrupt und Timer einstellen
TCCR0 |= DIVIDER; // Timer aktivieren
...
}
Das funktioniert mit einem 3,6864MHz Quarz perfekt. Bei einem 10MHz Quarz wirst du den Timer nicht ganz genau einstellen können, da COUNTER nicht ganzzahlig wird und somit gerundet werden muss.
Lesezeichen