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.Das sieht dann am Controllerausgang so aus (2V + 10µs / div), Controller mit 5,17 V.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 } // =================================================================================
..................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*.






Zitieren

Lesezeichen