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