-
-
Hier meine Interrupt Routine..
sbi PORTB,1 ;Pulse einschalten
sbi PORTB,2
sbi PORTB,3
sbi PORTB,4
sbi PORTB,0
sbi PORTD,7
sbi PORTD,6
sbi PORTD,5
ldi r23,16
wms1:
ldi r22,00
wms2: ;etwa 1ms warten
dec r22
brne wms2
dec r23
brne wms1
ldi r22,$00
PLoop: ;Diese Schleife sollte auch wieder 1ms dauern
lds r21,0x0060 ;Position lesen
cp r22,r21 ;Vergleichen
brne n1
cbi PORTB,1 ;Ja, dann entsprechendes Portbit setzen
n1:
lds r21,0x0061
cp r22,r21
brne n2
cbi PORTB,2
n2:
lds r21,0x0062
cp r22,r21
brne n3
cbi PORTB,3
n3:
lds r21,0x0063
cp r22,r21
brne n4
cbi PORTB,4
n4:
lds r21,0x0064
cp r22,r21
brne n5
cbi PORTB,0
n5:
lds r21,0x0065
cp r22,r21
brne n6
cbi PORTD,7
n6:
lds r21,0x0066
cp r22,r21
brne n7
cbi PORTD,6
n7:
lds r21,0x0067
cp r22,r21
brne n8
cbi PORTD,5
n8:
nop
nop
nop
nop
inc r22
brne PLoop
nop
reti ;Rücksprung aus Interrupt
Am besten du Verwendest den Simulator im AVR Studio und prüfst, ob die
Zeiten auch stimmen, diese Routine ist für 12Mhz geschrieben...
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen