Sposób obliczenia +BASCOM


WITAM

Oto fragment programu miernika częstotliwości . Nadmieniam że miernik działa . Mam do kolegów prośbę o wytłumaczenie mi sposobu wyliczenia .Na wejściu jest dzielnik :8 (74hct93) ponadto zadeklarowano preskale=8 .Czy dlatego przyjęto Timer0-Vorteiler=64 ,że dzielnik wstępny * prescale=8 =64 ?
Dlaczego Timer0-Überläüf=2500 jak ją wyliczono?
64*256*2500=40960000 40960000: 10240000= 4 , dlaczego 4 ?
Jak wyliczyć jeśli dam dzielnik wstępny np. : 64 (SP8718) i Quarzfrequenz będzie inny niż 10240000Hz ? Czy Timer0-Steps zawsze będzie = 256 ?
Z góry dzięki za podpowiedz Majkell.
=========================================================================
'Frequenzzähler bis 40 MHz mit ATtiny2313 mit Vorteiler 8:1 (74HCT93) und
'vorgeschaltetem Schmitt-Trigger 74HC14 und 2-stufigem Vorverstärker
'Torzeit:
'Timer0-Vorteiler * 256 Timer0-Steps * 2500 Timer0-Überläüfe / Quarzfrequenz
'64 * 256 * 2500 / 10240000 Hz = 0,5 Sekunde
'Maximale Eingabefrequenz direkt an Timer1-Pin: 5 MHz

Tak jest w programie
$crystal = 10240000 'Quarz: 10,240 MHz
.......
.......
On Timer0 On_timer0_overflow 'Interrupt Timer0
On Timer1 On_counter_overflow 'Interrupt Timer1
Config Timer0 = Timer , Prescale = 8 'Torzeit-Timer mit Takt/8
Config Timer1 = Counter , Edge = Rusing
......
On_timer0_overflow: 'Wenn Timer0 (Torzeit) überläuft
If Itimer0_runs = 0 Then 'Zähler starten
Enable Timer1 'Zähler-Overflow-Interrupts ein
Start Timer1 'Timer1 starten (Zähler)
Itimer0_runs = 1
Elseif Itimer0_runs < 2500 Then '2500 Timer0 - Umläufe warten
Incr Itimer0_runs 'Timer0-Overflow-Zähler um 1 erhöhen
.......
.......
On_counter_overflow:
Incr Wcounthi 'High Word des Zählers erhöhen (Count+65536)
Return
====================================================================