Versuch das mal:
Code:
$crystal = 8000000
Config Timer0 = Timer , Prescale = 1 , Clear Timer = 1
Timer0 = 8
On Int0 Int0_ovf
Enable Interrupts
Enable Int0

Dim Wert As Byte

Do
Loop

Int0_ovf:
Timer0 = 8
$asm
lds r16,{Wert}                          '1µs Wert in R16 laden
cpi r16,65                              'Wert=65 ?
brne _label0                            'nein weiter Label0
clr r16                                 'sonst Wert=0
_label0:
cpi r16,21
brlo _label1                            'wenn kleiner 21 -> label1
brge _label2                            'wenn größer oder gleich 21 -> label2
jmp _label3                             'sonst label3
_label1:
ldi r17,1
Out Portd , R17                         'Portd.1=1
jmp _end
_label2:
ldi r17,2
Out Portd , R17                         'Portd.2=1
jmp _end
_label3:
ldi r17,1
Out Portd , R17                         'Portd.1=1
_end:
inc r16                                 'Wert erhöhen
sts {wert},r16                          'Wert speichern
$end Asm
Return