PASCALU
20.01.2008, 10:37
Hallo zusammen bin gerade am eine serielle übertragung vom vb zum rncotrol zu machen. KOmischerweise komme ich zu deisem Resultat
(Ist für ne schrittmotoransteuerung in vb ) code vom rncotrol
$regfile = "m32def.dat"
' bei Mega 16 $regfile = "m16def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000 'Quarzfrequenz
$baud = 9600
Dim X As Integer
Dim Y As Integer
Dim Ilinksschritt As Integer
Config Porta.2 = Output
Config Porta.3 = Output
Config Porta.4 = Output
Config Porta.5 = Output
Links_a Alias Porta.2
Links_b Alias Porta.3
Links_c Alias Porta.4
Links_d Alias Porta.5
Ilinksschritt = 0
Do
Input "Zahl" , X
If X > 0 Then
Y = 0
For Y = 1 To X
Incr Ilinksschritt
If Ilinksschritt > 4 Then
Ilinksschritt = 1
End If
Select Case Ilinksschritt 'Schritt für Linken Motor
Case 1:
Links_a = 1
Links_b = 0
Links_c = 1
Links_d = 0
Case 2:
Links_a = 1
Links_b = 0
Links_c = 0
Links_d = 1
Case 3:
Links_a = 0
Links_b = 1
Links_c = 0
Links_d = 1
Case 4:
Links_a = 0
Links_b = 1
Links_c = 1
Links_d = 0
End Select
Waitms 10
Next Y
End If
If X < 0 Then
For Y = X To -1
Incr Ilinksschritt
If Ilinksschritt > 4 Then
Ilinksschritt = 1
End If
Select Case Ilinksschritt 'Schritt für Linken Motor
Case 1:
Links_a = 0
Links_b = 1
Links_c = 1
Links_d = 0
Case 2:
Links_a = 0
Links_b = 1
Links_c = 0
Links_d = 1
Case 3:
Links_a = 1
Links_b = 0
Links_c = 0
Links_d = 1
Case 4:
Links_a = 1
Links_b = 0
Links_c = 1
Links_d = 0
End Select
Waitms 10
Next Y
End If
Loop
und der im vb
Private Sub Command3_Click()
MSComm1.Output = "12" + vbCrLf
End Sub ( nur ein Teil davon)
Die erste Zahl wird richtig eingelesen als zwölf und der Schrittmotor wird angesteuert doch eine zweite zahl (Private Sub Command2_Click()
MSComm1.Output = "16" + vbCrLf) wird als null eingelesen. Weiss jemand warum? Mit dem bascom eigenen terminal läuft es perfekt
(Ist für ne schrittmotoransteuerung in vb ) code vom rncotrol
$regfile = "m32def.dat"
' bei Mega 16 $regfile = "m16def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000 'Quarzfrequenz
$baud = 9600
Dim X As Integer
Dim Y As Integer
Dim Ilinksschritt As Integer
Config Porta.2 = Output
Config Porta.3 = Output
Config Porta.4 = Output
Config Porta.5 = Output
Links_a Alias Porta.2
Links_b Alias Porta.3
Links_c Alias Porta.4
Links_d Alias Porta.5
Ilinksschritt = 0
Do
Input "Zahl" , X
If X > 0 Then
Y = 0
For Y = 1 To X
Incr Ilinksschritt
If Ilinksschritt > 4 Then
Ilinksschritt = 1
End If
Select Case Ilinksschritt 'Schritt für Linken Motor
Case 1:
Links_a = 1
Links_b = 0
Links_c = 1
Links_d = 0
Case 2:
Links_a = 1
Links_b = 0
Links_c = 0
Links_d = 1
Case 3:
Links_a = 0
Links_b = 1
Links_c = 0
Links_d = 1
Case 4:
Links_a = 0
Links_b = 1
Links_c = 1
Links_d = 0
End Select
Waitms 10
Next Y
End If
If X < 0 Then
For Y = X To -1
Incr Ilinksschritt
If Ilinksschritt > 4 Then
Ilinksschritt = 1
End If
Select Case Ilinksschritt 'Schritt für Linken Motor
Case 1:
Links_a = 0
Links_b = 1
Links_c = 1
Links_d = 0
Case 2:
Links_a = 0
Links_b = 1
Links_c = 0
Links_d = 1
Case 3:
Links_a = 1
Links_b = 0
Links_c = 0
Links_d = 1
Case 4:
Links_a = 1
Links_b = 0
Links_c = 1
Links_d = 0
End Select
Waitms 10
Next Y
End If
Loop
und der im vb
Private Sub Command3_Click()
MSComm1.Output = "12" + vbCrLf
End Sub ( nur ein Teil davon)
Die erste Zahl wird richtig eingelesen als zwölf und der Schrittmotor wird angesteuert doch eine zweite zahl (Private Sub Command2_Click()
MSComm1.Output = "16" + vbCrLf) wird als null eingelesen. Weiss jemand warum? Mit dem bascom eigenen terminal läuft es perfekt