PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schrittmoter anhalten



datatom
22.05.2012, 10:21
Hallo zusammen,

ich habe den Schrittmotortreiber A4983 http://www.shop.robotikhardware.de/s...roducts_id=237 (http://www.shop.robotikhardware.de/shop/catalog/product_info.php?products_id=237) und den Schrittmotor (http://www.rn-wissen.de/index.php/Schrittmotoren) http://www.sparkfun.com/datasheets/R...2BYG011-25.pdf (http://www.sparkfun.com/datasheets/Robotics/SM-42BYG011-25.pdf) .

Den Schrittmotor steuere ich mit einem Bascomprogramm.

Allerdings habe ich zwei Probleme:

1. Sobald ich die ganze angeschlossene Elektronik einschalte dreht der Schrittmotor los, obwohl ich den Timer1 gar nicht eingeschaltet habe.

2. Obwohl ich den Timer1 auf 0 setze dreht der Schrittmotor weiter.


' Stepper Testprogram

$prog , 255 , &B11011001,
$regfile = "m2560def.dat"
$hwstack = 82 '80
$framesize = 68 ' 64
$swstack = 68 '44


$crystal = 16000000 'Quarzfrequenz
$baud = 19200


Config Pind.5 = Output
Led Alias Portd.5

Config Pinc.0 = Output ' Stiftleiste JP 2; Pin 3; PC0
Stepper1_reset Alias Portc.0

Config Pinc.1 = Output ' Stiftleiste JP 2; Pin 4; PC1
Stepper1_direction Alias Portc.1

Config Pinc.2 = Output ' Stiftleiste JP 2, Pin 5; PC2
Stepper1_enable Alias Pinc.2

Config Pinc.3 = Output ' Stiftleiste JP 2, Pin 6; PC3
Stepper1_step Alias Pinc.3

Dim I1 As Integer
Dim Sekunden As Integer
Dim Timer1_wert As Long

Echo Off

Led = 0 ' LED einschalten

Stepper1_enable = 1 ' Stepper1 off

Timer1_wert = 0

I1 = 0

Sekunden = 0

Do
Toggle Led
Waitms 75
I1 = I1 + 1
Loop Until I1 = 20

Wait 5

Stepper1_direction = 1
Stepper1_enable = 0 ' Stepper1 on

'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''
Config Timer1 = Timer , Prescale = 64 ' Stiftleiste JP 1; Pin 26
Enable Timer1
On Timer1 Timer_irq
Enable Interrupts

'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''

Do
Toggle Led
Waitms 200

Sekunden = Sekunden + 200

If Sekunden = 5000 Then
Timer1_wert = 64286
Wait 5
Sekunden = 0
Timer1_wert = 0
End If

Loop


'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''
End

Timer_irq:
Timer1 = Timer1_wert
Stepper1_step = 0 : Waitus 1 : Stepper1_step = 1
Return

Es wäre nett, wenn mir jemand bei meinen beiden Problemen einen Tipp geben könnte.

Vielen Dank im Voraus.

Grüße

datatom

MagicWSmoke
22.05.2012, 13:19
1) Der läuft ab dem Config Timer1
2) Stop Timer1