-
Hallo
Ich hab jetzt mal eine vorabversion, ist noch nicht ganz Stabil und noch nicht vollsändig.
Das Tool Steuert mit dem RN-Control v1.4 übers I2C Kabel ein RN-Schrittmotorsteuerungsboard an, das RN-Controlboard wird über den RS232-port am Com-port1 des Pcs angeschlossen (Port auswahl gibt es bisher noch keine)
Bild
Bild hier
Tool
RN-SchrittmotorSteuerung.zip
AVR Code (RN-Control v1.4)
Code:
'===CHIP SETTINGS===
Declare Sub Abfrage() As Byte
$regfile = "m32def.dat"
$framesize = 64
$swstack = 64
$hwstack = 64
$crystal = 16000000 'Quarzfrequenz
$baud = 38400
Config Scl = Portc.0 'Ports fuer IIC-Bus
Config Sda = Portc.1
'===CHIP SETTINGS END===
Config Serialin = Buffered , Size = 20
Enable Interrupts
Dim Inputstring1 As Byte
Dim Inputstring2 As Byte
Dim Inputstring3 As Byte
Dim Inputstring4 As Byte
Const Inputstring5 = 0
Const I2crnmotorslaveadr = &H58 'I2C SlaveAdresse von RN-Schrittmotor Erweiterung
Const I2crnmotorsreadlaveadr = &H59 'I2C SlaveAdresse von RN-Schrittmotor Erweiterung
Dim I2cdaten(7) As Byte
Dim Schritte As Long
Dim Temp As Byte
Dim Ltemp As Long
Dim Umdrehungen As Single
Dim Fahrstrecke As Word
Dim Data_available As Byte
Dim Endschalter As Byte
Dim Motorstatus As Byte
Do
Data_available = Ischarwaiting()
If Data_available = 1 Then
Input "" , Inputstring1 , Inputstring2 , Inputstring3 , Inputstring4 ', Inputstring5
I2cdaten(1) = Inputstring1
I2cdaten(2) = Inputstring2
I2cdaten(3) = Inputstring3
I2cdaten(4) = Inputstring4
I2cdaten(5) = Inputstring5
I2csend I2crnmotorslaveadr , I2cdaten(1) , 7
If Inputstring1 = 101 Then
If Inputstring2 = 1 Then
I2cstart
I2cwbyte I2crnmotorsreadlaveadr
I2crbyte Motorstatus , Nack
I2cstop
Print "Motorstatus_Motor1" ; Motorstatus
Else
I2cstart
I2cwbyte I2crnmotorsreadlaveadr
I2crbyte Motorstatus , Nack
I2cstop
Print "Motorstatus_Motor2" ; Motorstatus
End If
End If
End If
I2cdaten(1) = 102
I2cdaten(2) = 1
I2csend I2crnmotorslaveadr , I2cdaten(1) , 7
I2cstart
I2cwbyte I2crnmotorsreadlaveadr
I2crbyte Temp , Ack
Schritte = Temp
I2crbyte Temp , Ack
Ltemp = Temp * 256
Schritte = Schritte + Ltemp
I2crbyte Temp , Ack
Ltemp = Temp * 65536
Schritte = Schritte + Ltemp
I2crbyte Temp , Nack
Ltemp = Temp * 16777216
Schritte = Schritte + Ltemp
I2cstop
Print "A" ; Schritte ' Motor 1
Waitms 10
I2cdaten(1) = 102
I2cdaten(2) = 2
I2csend I2crnmotorslaveadr , I2cdaten(1) , 7
I2cstart
I2cwbyte I2crnmotorsreadlaveadr
I2crbyte Temp , Ack
Schritte = Temp
I2crbyte Temp , Ack
Ltemp = Temp * 256
Schritte = Schritte + Ltemp
I2crbyte Temp , Ack
Ltemp = Temp * 65536
Schritte = Schritte + Ltemp
I2crbyte Temp , Nack
Ltemp = Temp * 16777216
Schritte = Schritte + Ltemp
I2cstop
Print "B" ; Schritte ' Motor 2
Waitms 10
Loop
End
Tipps:
Bewegt die Regler nicht so schnell.
Sollte das Tool oder das Controlboard nicht reagieren Resetet beide Boards Manuell über den Tasten auf den Boards
-
Danke für den Bascom Code,
wenn du jetzt noch die Sharp Dateien zur Verfügung stellen könntest,
würdest du mich so was von glücklich machen.........
-
Hallo
hab da noch ein anliegen ich hab da leider nix mit google gefunden
Also ich kann mit 'Printbin' in Bascom arrays verschicken aber wie kann ich die in SharpDevelop empfangen und leserlich machen und wieder in ein array speichern?
mfg