Bascom
Code:
'===CHIP SETTINGS===
Declare Sub Abfrage() As Byte
$regfile = "m32def.dat"
$framesize = 64
$swstack = 64
$hwstack = 64
$crystal = 16000000 'Quarzfrequenz
$baud = 19200
Config Scl = Portc.0 'Ports fuer IIC-Bus
Config Sda = Portc.1
Dim Inputstring As String * 10
Dim I As Byte
Dim A As Byte
Const I2crnmotorslaveadr = &H58 'I2C SlaveAdresse von RN-Schrittmotor Erweiterung
Const I2crnmotorsreadlaveadr = &H59 'I2C SlaveAdresse von RN-Schrittmotor Erweiterung
Dim I2cdaten(7) As Byte
Const Befehl_endlosdrehung = 54
Const Motor_1 = 3
Dim Extrahierter_integer As Integer
Dim Motor_speed_x As Byte
Dim Motor_x_an_aus As Byte
Dim Motor_speed_y As Byte
Dim Motor_y_an_aus As Byte
Dim Motor_x_richtung As Byte
Dim Motor_y_richtung As Byte
Dim Motor_x_weg As Byte
Dim Trackbar_wert_string As String * 10
Dim Trackbar_wert_byte As Byte
Dim Schritte As Long
Dim Temp As Byte
Dim Ltemp As Long
Dim Umdrehungen As Single
Dim Fahrstrecke As Word
Dim Startt As Byte
Dim Data_available As Byte
Do
Data_available = Ischarwaiting()
If Len(data_available) <> 0 Then
input "" , Inputstring
Motor_speed_x = Instr(inputstring , "SpX")
Motor_x_an_aus = Instr(inputstring , "anX")
Motor_x_richtung = Instr(inputstring , "RiX")
Motor_x_weg = Instr(inputstring , "WeX")
Motor_speed_y = Instr(inputstring , "SpY")
Motor_y_an_aus = Instr(inputstring , "anY")
Motor_y_richtung = Instr(inputstring , "RiY")
If Motor_x_weg = 1 Then
Trackbar_wert_string = Mid(inputstring , 4)
Trackbar_wert_byte = Val(trackbar_wert_string)
Motor_x_weg = 0
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 "WeX:" ; Schritte
'Umdrehungen = Schritte / 200
' Print "Umdrehungen: " ; Umdrehungen
' Fahrstrecke = Umdrehungen * 31.4
' Print "Der Roboter ist " ; Fahrstrecke ; " cm gefahren "
End If
If Motor_speed_x = 1 Then
Trackbar_wert_string = Mid(inputstring , 4)
Trackbar_wert_byte = Val(trackbar_wert_string)
Motor_speed_x = 0
I2cdaten(1) = 53
I2cdaten(2) = 1
I2cdaten(3) = Trackbar_wert_byte
I2cdaten(4) = 0
I2csend I2crnmotorslaveadr , I2cdaten(1) , 7
End If
If Motor_x_an_aus = 1 Then
Trackbar_wert_string = Mid(inputstring , 4)
Trackbar_wert_byte = Val(trackbar_wert_string)
Motor_x_an_aus = 0
If Trackbar_wert_byte = 1 Then
I2cdaten(1) = Befehl_endlosdrehung
I2cdaten(2) = 1
I2csend I2crnmotorslaveadr , I2cdaten(1) , 7
Else
I2cdaten(1) = 51
I2cdaten(2) = 1
I2csend I2crnmotorslaveadr , I2cdaten(1) , 7
End If
End If
If Motor_x_richtung = 1 Then
Trackbar_wert_string = Mid(inputstring , 4)
Trackbar_wert_byte = Val(trackbar_wert_string)
Motor_x_richtung = 0
If Trackbar_wert_byte = 1 Then
I2cdaten(1) = 52
I2cdaten(2) = 1
I2cdaten(3) = Trackbar_wert_byte
I2csend I2crnmotorslaveadr , I2cdaten(1) , 7
Else
I2cdaten(1) = 52
I2cdaten(2) = 1
I2cdaten(3) = Trackbar_wert_byte
I2csend I2crnmotorslaveadr , I2cdaten(1) , 7
End If
End If
If Motor_speed_y = 1 Then
Trackbar_wert_string = Mid(inputstring , 4)
Trackbar_wert_byte = Val(trackbar_wert_string)
Motor_speed_y = 0
I2cdaten(1) = 53
I2cdaten(2) = 2
I2cdaten(3) = Trackbar_wert_byte
I2cdaten(4) = 0
I2csend I2crnmotorslaveadr , I2cdaten(1) , 7
End If
If Motor_y_an_aus = 1 Then
Trackbar_wert_string = Mid(inputstring , 4)
Trackbar_wert_byte = Val(trackbar_wert_string)
Motor_y_an_aus = 0
If Trackbar_wert_byte = 1 Then
I2cdaten(1) = Befehl_endlosdrehung
I2cdaten(2) = 2
I2csend I2crnmotorslaveadr , I2cdaten(1) , 7
Else
I2cdaten(1) = 51
I2cdaten(2) = 2
I2csend I2crnmotorslaveadr , I2cdaten(1) , 7
End If
End If
If Motor_y_richtung = 1 Then
Trackbar_wert_string = Mid(inputstring , 4)
Trackbar_wert_byte = Val(trackbar_wert_string)
Motor_y_richtung = 0
If Trackbar_wert_byte = 1 Then
I2cdaten(1) = 52
I2cdaten(2) = 2
I2cdaten(3) = Trackbar_wert_byte
I2csend I2crnmotorslaveadr , I2cdaten(1) , 7
Else
I2cdaten(1) = 52
I2cdaten(2) = 2
I2cdaten(3) = Trackbar_wert_byte
I2csend I2crnmotorslaveadr , I2cdaten(1) , 7
End If
End If
End If
Print "Test"
Waitms 10
Loop
End
SharpDevelop
Code:
' Erstellt mit SharpDevelop.
' Benutzer: William
' Datum: 28.02.2009
' Zeit: 19:36
'
' Sie können diese Vorlage unter Extras > Optionen > Codeerstellung > Standardheader ändern.
'
Public Partial Class MainForm
Public Sub New()
' The Me.InitializeComponent call is required for Windows Forms designer support.
Me.InitializeComponent()
serialport1.Open
' TODO : Add constructor code after InitializeComponents
'
End Sub
Dim onX As Byte
Dim RichtungX As Byte
Dim onY As Byte
Dim RichtungY As Byte
Dim ContainsA As Boolean
Dim ContainsB As Boolean
Dim ContainsC As Boolean
Dim readvar As String
Dim A_Daten As String
Sub Timer1Tick(sender As Object, e As EventArgs)
if serialport1.BytesToRead > 0 then
Do
textbox1.AppendText (chr(SerialPort1.Readbyte))
textbox1.ScrollToCaret
If SerialPort1.BytesToRead = 0 Then
Exit Do
End If
Loop
end if
End Sub
Sub TrackBar2Scroll(sender As Object, e As EventArgs)
serialport1.Write ("SpX" + (Speed_motor_1.Value).tostring + Chr(13))
SpeedMotor1.text = 11- Speed_motor_1.Value
End Sub
Sub Button3Click(sender As Object, e As EventArgs)
If RichtungX = 0 Then
serialport1.Write ("RiX" + (1).tostring + Chr(13))
RichtungX = 1
Else
serialport1.Write ("RiX" + (0).tostring + Chr(13))
RichtungX = 0
End If
End Sub
Sub Button1Click(sender As Object, e As EventArgs)
If onX = 0 Then
serialport1.Write ("anX1" + Chr(13))
onX = 1
Else
serialport1.Write ("anX0" + Chr(13))
onX = 0
End If
End Sub
Sub TrackBar1Scroll(sender As Object, e As EventArgs)
serialport1.Write ("SpY" + (Speed_motor_2.Value).tostring + Chr(13))
SpeedMotor2.text = 11- Speed_motor_2.Value
End Sub
Sub Button2Click(sender As Object, e As EventArgs)
If onY = 0 Then
serialport1.Write ("anY1" + Chr(13))
onY = 1
Else
serialport1.Write ("anY0" + Chr(13))
onY = 0
End If
End Sub
Sub Button4Click(sender As Object, e As EventArgs)
If RichtungY = 0 Then
serialport1.Write ("RiY" + (1).tostring + Chr(13))
RichtungY = 1
Else
serialport1.Write ("RiY" + (0).tostring + Chr(13))
RichtungY = 0
End If
End Sub
End Class
Lesezeichen