Timerinterrups Timer1

Hallo,

ich unternehme gerade meine ersten Gehversuche mit dem Arduino.
Wenn ich unten stehendes Programm in den Controller lade funktioniert es so wie ich es mir vorstelle. Alle 1023,5µs kommt
ein 32µs langer Highpuls.

Ändere ich aber den Wert von OCR1A auf 2048 oder höher ist der
Highpuls nicht mehr stail bei 32µs sondern fängt an zwischen
26 und 32µs zu schwanken. :-/

Hat jemand eine Idee waran das liegen kann?

Gruß,
Bernd

#include <avr/io.h>
#include <avr/interrupt.h>

void setup()
{
// Einstellungen Timer 1
TCCR1B = ((1<<CS11)|(1<<WGM12)); // Vorteiler 8 → 0,5µs je Zaehlschritt
TCCR1A &= ~(1<<WGM10);
OCR1A = 2047; // 1024µs bei 0,5µs Schritten
OCR1B = 64; // 32µs bei 0,5µs Schritten
TIMSK1 = ((1<<OCIE1A)|(1<<OCIE1B)); // Aktivieren des Interrups bei Erreichen von OCR1A oder OCR1B

// Pins definieren
pinMode(12, OUTPUT);
}

void loop()
{
}

ISR(TIMER1_COMPA_vect){
PORTB = (1<<PORTB4);
TCNT0 = 0;
}

ISR(TIMER1_COMPB_vect){
PORTB &= ~(1<<PORTB4);
}

Ich konnte das Problem mit ein wenig Hilfe eines Profis lösen. Die Timer 0 und 2 an die ich, weil ich sie nicht verwende, gar nicht gedacht habe, haben mir in die Suppe gespuckt. ein: TCCR0B = 0; und TCCR2B = 0; haben das Problem gelöst. ;D