Ok dann wollen wir mal rechnen.

Der Timer ist ja nur eine Speicherstelle des uC, den man mit dem Takt verbinden kann
und dann um 1 erhöht wird. Beim Wechseln von 255 auf 0 ( 256) kann ein Interrupt
ausgelöst werden.

Daraus ergibt sich.

Takt / Vorteiler = Zeit pro Erhöhung Beispiel: 8 MHZ / 1 = 125 ns
oder 8MHZ / 1024 = 128 us. Damit kann Timer0 minimal in 125 ns oder maximal in 128 us
um 1 erhöht werden.

Wenn man den Timer0 auf 0 einstellt dauert das dann 256 mal so lange, bis ein Interrupt auftritt.

Beispiel :

Timer0 = 100 Vorteiler 1024 Takt 8 MHZ

8MHZ / 1024 = 128 us pro Erhöhung. Der Timer braucht jetzt noch 256 - 100 = 156 Erhöhungen
bis zum Interrupt ---> 156 * 128 us = 19,98 ms bis zum Interrupt.

Wenn du jetzt in der Interrupt Routine eine Variable deiner Wahl um 1 erhöhst, hast
du doch eine Erhöhung alle ca 20 ms. Wenn deine Variable damit den Wert 50 erreicht,
so sind ungefähr 1 Sekunde vergangen. ( 0,9984 Sekunden )

Code:
dim zeit as byte

On Timer0 Ontimer0 
Config Timer0 = Timer , Prescale = 1024 
Enable Timer0 

do
    nop
loop


Ontimer0: 
   Timer0 = 100                   'Neue einstellen für 20 ms INT.
   incr zeit                           'Interrupts zählen
   if zeit >= 50 then             '1 Sekunde vorbei
         Toggle Portc.2 	
         zeit = 0                     'Zeit löschen
   endif
Return
MFG
Dieter