Hallo
hier mal der Code.
Schöne GrüßeCode:.include "m8def.inc" ; Motor dreht abwechselnt vorwärts und rückwärts ; Anschlüße Port B ; PB0 Takt ; PB1 Drehrichtung ; PB2 Enable ; PB3 H/F ; Alle Anderen nicht belegt. .def temp0 = r16 .def temp1 = r17 .def temp2 = r18 .def temp3 = r19 .def temp4 = r20 .def temp5 = r21 .org 0x0000 rjmp start ; Reset Handler start: ldi temp0, 0xFF ldi temp1, 0x00 ldi temp2, 0x00 ldi temp3, 0x00 ldi temp4, 0x00 ldi temp5, 0x00 out DDRB, temp0 ldi temp0, 0xFE out PORTB, temp0 ; cbi PortB, 3 ; Halb oder Voll Schritt output: sbic PortB, 0 ; Überspringe den nächsten Befehl, wenn das Bit 0 im Port gelöscht ist rjmp ClrBitNow ; Springe zu ClrBitNow sbi PortB, 0 ; Setze Bit 0 in PortB rjmp Delay ; Springe BitReady ClrBitNow: cbi PortB, 0 Delay: inc temp1 cpi temp1, 250 ; Drehgeschwindigkeit; größerer wert gleich langsamer brne Delay clr temp1 inc temp2 cpi temp2, 6 ; Drehgeschwindigkeit; größerer wert gleich langsamer brne Delay clr temp2 inc temp5 cpi temp5, 1 ; Drehgeschwindigkeit; größerer wert gleich langsamer brne Delay clr temp5 inc temp3 cpi temp3, 200 ; Fahrweg wie lang der motor Drehen soll. brne output clr temp3 inc temp4 cpi temp4, 1 ; Fahrweg wie lang der motor Drehen soll. brne output clr temp4 sbic PORTB, 1 rjmp ClrBitNow2 ; Springe zu ClrBitNow sbi PortB, 1 ; Setze Bit 0 in PortB rjmp output ; Springe BitReady ClrBitNow2: cbi PortB, 1 rjmp output
Thomas







Zitieren

Lesezeichen