Hi, PICture,

danke. Schön, wenn man nicht zu tun braucht, was man (eigentlich) nicht kann. Ich hatte mir schon vor einiger Zeit ein Rechteck gemacht mit meinem 20MHz-m168. Meine kleinste Zeiteinheit für die aktuellen Projektchen sind 50 µs.
Code:
ISR(TIMER2_COMPA_vect)          // Vektor 7 (8)
{
  if (Izeit_1 < Izthrznt)       //Interrupt-Timer = 20 000 ... (1 sec blink)
  {
    PORTC ^=  (1<<PC4);         // LED auf PC4/I2C/SCL toggeln
    Izeit_1 ++;                 //  war: alle drei Sekunden wird 60000 erreicht
  }                             //  und Izeit_1 bleibt in der uint16-Grenze
  else
  . . .
  . . .

// =================================================================================
// ===  Initialisierung fuer Timer2 mega168 ========================================
void TC2TMR_init(void)          // Init Tmr/Cntr 2, 8-Bit auf 20 kHz = 50 µs
{	     
    TCCR2A |= (1<<WGM21);       // Timer im CTC-Mode, Top=OCR2A            doc S 157
    TCCR2B |= (1<<CS21);        // Prescaler 1/8 / Clock <- CPU	         doc S 158
    OCR2A   = 124;              // Preset 125 für 50µs bei 20Mhz  
    TIMSK2 |= (1<<OCIE2A);      // Tmr/Cntr2 CompareA interrupt enabled
}     
// =================================================================================
Das sieht dann am Controllerausgang so aus (2V + 10µs / div), Controller mit 5,17 V.

..................Bild hier  

Damit habe ich meinen Bezugswert (ok, einschließlich Quarztoleranz und allen augenoptischen Toleranzen).

Beinahe hätte ich es vergessen: der Korrekturfaktor oben ist recht genau 1/0,95, beim eingebauten Calibrator mit 1 kHz sind es bei 0,1ms/DIV 1/0,96, beim 1MHz-Signal aus dem Calibrator aber schon 1/0,86 - 0,1µs/DIV. Trotz Allem, darüber sollte ich nicht mehr nachdenken *ggggg*.