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







Zitieren
Lesezeichen