hallo,

ich nehme meistens counter als timer her. wenns genauer gehen muß nen timer als takt und counter zum vervielfachen. im folgenden beispiel blinkt sekbyte im sekundentakt (nicht genau, aber das spielt hier keine rolle) und minbyte soll alle 9 sek blinken.
meine problem: manchmal blinkt minbyte alle 9 sek, manchmal alle 10 sek.
irgendwie denk ich, liegt es daran dass ich bei xxxbyte=0 gleichzeitig ein anderes byte runterzählen lasse und das xxxbyte wieder auf den anfangswert setze.
läuft jetzt die schleife nochmal durch und xxxbyte ist immer noch 0, dann wird eben das andere byte nochmal runtergezählt.
so ganz hab ich das leider noch nicht kapiert, wann ein befehl gelesen wird und wann er ausgeführt wird.
oder liegts an was anderem

Code:
$regfile = "attiny26.dat"
$crystal = 1000000

Ddrb = &B00011100                                           'Bit 0, 1 auf Eingang
Portb = &B00000011



Config Timer0 = Timer , Prescale = 1024                     'Timer0 als timer definieren, teiler 1024                  '
Const Preset = 5                                            'zählt von 1 bis 255


On Timer0 Marke
Timer0 = 230

Enable Timer0
Enable Interrupts

Dim Sekbyte As Byte
Dim Minbyte As Byte
Sekbyte = 0
Minbyte = 9

Do

If Sekbyte < 5 Then
 Portb.4 = 1
 Else
 Portb.4 = 0
End If

If Sekbyte = 20 Then
Decr Minbyte
End If

If Sekbyte = 20 Then
Sekbyte = 0
End If

If Minbyte = 9 Then
Portb.3 = 1
Else
Portb.3 = 0
End If

If Minbyte = 0 Then
Minbyte = 9
End If

Loop


Marke:
Timer0 = 230
If Pinb.0 = 0 Then
Incr Sekbyte
End If

Return