Hilfe!!!
Ich verwende zwei "RN-Stepp297" die ich über ein RN-Mega2560-Modul steuern möchte.
Hierzu verwende ich Timer0 und Timer2 die jeweils 8-bit-Timer sind. An PinB.4 und PinB.7 sollte nun der Takt zur Steuerung der "RN-Stepp297" anliegen. Durch PinA.0 bis PinA.3 werden Richtung und Stop/Start der Motoren gesteuert.
Das Ganze programmiere ich in BASCOM.
Leider laufen die Motoren jedoch nicht los, Sie werden aber, da Strom anliegt, gebremst. Was ist falsch?
Ps: Einen Mega128 hatte ich mit Schrittmotoren und dieser Konfiguration schon mal am Laufen.
Im Voraus herzlichen Dank für Eure Hilfe!!!
Warms0
Ich verwende zwei "RN-Stepp297" die ich über ein RN-Mega2560-Modul steuern möchte.
Hierzu verwende ich Timer0 und Timer2 die jeweils 8-bit-Timer sind. An PinB.4 und PinB.7 sollte nun der Takt zur Steuerung der "RN-Stepp297" anliegen. Durch PinA.0 bis PinA.3 werden Richtung und Stop/Start der Motoren gesteuert.
Das Ganze programmiere ich in BASCOM.
Leider laufen die Motoren jedoch nicht los, Sie werden aber, da Strom anliegt, gebremst. Was ist falsch?
Ps: Einen Mega128 hatte ich mit Schrittmotoren und dieser Konfiguration schon mal am Laufen.
Code:
'
###################################################
'mega2560modultRobo Moritz 1.bas
'für
'2 Schrittmotoren steuern
'
'Aufgabe:
'steuert 2 Schrittmotoren über RN-Stepp297
'Autor: Warms0
'##############################################################
$programmer = 12
$regfile = "m2560def.dat"
$hwstack = 82 '82
$framesize = 68 '64
$swstack = 68 '44
$crystal = 16000000 'Quarzfrequenz
$baud = 9600
Tccr0a = &B01000010
Tccr0b = &B00000101
' Toggle OC0 bei Compare-Match (Timer0 / 8-Bit-Timer)
' Prescaler an Bit0 bis Bit2 entspricht 1024
' (Quarzfrequenz wir durch 1024 geteilt)
Tccr2a = &B01000010
Tccr2b = &B00000111
' Toggle OC2 bei Compare-Match (Timer2 / 8-Bit-Timer)
' Prescaler an Bit0 bis Bit2 entspricht 1024
' (Quarzfrequenz wir durch 1024 geteilt)
Ddrb.7 = 1 'OC0A (PinB.7) als Ausgang definieren damit das
' Puls-Signal von Timer0 zur Motorsteuerung des
' "linken Motors" ausgegeben wird
Ddrb.4 = 1 'OC2A (PinB.4) als Ausgang definieren damit das
' Puls-Signal von Timer0 zur Motorsteuerung des
' "linken Motors" ausgegeben wird
Ocr2a = 255 'Output Compare ist 255, dies bedeutet, dass der Timer2
' bis auf 255 zählt, dann einen Impuls an OC2 ausgibt
' und den Timer2 dann auf 0 zurückstellt...
Ocr0a = 255 'Output Compare ist 255, dies bedeutet, dass der Timer0
' bis auf 255 zählt, dann einen Impuls an OC0 ausgibt
' und den Timer2 dann auf 0 zurückstellt...
Ddra = &B0001111 'PinA.0 bis PinA.3 auf Ausgang, PinA.4 - PinA.7
' lassen wie sie sind
' mit diesen Pins werden die Motoren ein/ausgeschaltet
' und die Richtung umgedreht
' DDRA.0 = ein/aus Motor rechts
' DDRA.1 = Richtung Motor rechts
' DDRA.2 = ein/aus Motor links
' DDRA.3 = Richtung Motor links
Porta = &B00001111 'PinA.0 bis PinA.3 high, PinA.4 - PinA.7 lassen
' wie sie sind
' Wenn PortA.0 auf high dann Motor Rechts an
' Wenn PortA.0 auf low dann Motor Rechts aus
' Wenn PortA.1 auf high dann Motor rechts vorwärts
' Wenn PortA.1 auf low dann Motor rechts rückwärts
' Wenn PortA.2 auf high dann Motor Rechts an
' Wenn PortA.2 auf low dann Motor Rechts aus
' Wenn PortA.3 auf high dann Motor Rechts vorwärts
' Wenn PortA.3 auf low dann Motor Rechts rückwärts
'---------------------------------
Do
nop
Loop
Im Voraus herzlichen Dank für Eure Hilfe!!!
Warms0