areopag
10.03.2008, 11:52
Hallo Leute!
Ich hoffe ihr könnt mir bei meinem seltsamen Problem helfen. Und zwar habe ich einen kleinen Ringbuffer in Bascom geschrieben der Datentelegramme einliest:
$regfile = "m32def.dat"
$crystal = 16000000
$hwstack = 256
$swstack = 256
$framesize = 64
$baud = 19200
Dim Buffer(17) As Byte , Crc As Byte , Dummy As Byte , Dummy2 As Byte
Dim A As Byte , Z As Byte
Print "Start"
Do
Inputbin Dummy
For Z = 1 To 16 'Verschieben
Buffer(z) = Buffer(z + 1)
Next Z
Buffer(17) = Dummy
'Auswertung
For A = 1 To 9
If Buffer(a) = &H02 And Buffer(a + 1) = &H81 And Buffer(17) = &H03 Then
Crc = 0
Dummy = 7 + Buffer(a + 7)
If Dummy >= 8 And Dummy <= 15 Then
For Z = 8 To Dummy 'CRC berechnen
Dummy2 = Z + A
If Dummy2 <= 17 Then
Crc = Crc + Buffer(dummy2)
End If
Next Z
If Crc = Buffer(a + 2) Then 'CRC prüfen
Print "Empfangen"
End If
End If
End If
Next A
Loop
Leider resettet sich der Controller selbst wenn ich viele Daten schreibe!
Spannungsversorgung ist ok, keine Spannungseinbrüche o.ä.
Vielleicht wisst ihr Rat!
MfG,
Areopag
Ich hoffe ihr könnt mir bei meinem seltsamen Problem helfen. Und zwar habe ich einen kleinen Ringbuffer in Bascom geschrieben der Datentelegramme einliest:
$regfile = "m32def.dat"
$crystal = 16000000
$hwstack = 256
$swstack = 256
$framesize = 64
$baud = 19200
Dim Buffer(17) As Byte , Crc As Byte , Dummy As Byte , Dummy2 As Byte
Dim A As Byte , Z As Byte
Print "Start"
Do
Inputbin Dummy
For Z = 1 To 16 'Verschieben
Buffer(z) = Buffer(z + 1)
Next Z
Buffer(17) = Dummy
'Auswertung
For A = 1 To 9
If Buffer(a) = &H02 And Buffer(a + 1) = &H81 And Buffer(17) = &H03 Then
Crc = 0
Dummy = 7 + Buffer(a + 7)
If Dummy >= 8 And Dummy <= 15 Then
For Z = 8 To Dummy 'CRC berechnen
Dummy2 = Z + A
If Dummy2 <= 17 Then
Crc = Crc + Buffer(dummy2)
End If
Next Z
If Crc = Buffer(a + 2) Then 'CRC prüfen
Print "Empfangen"
End If
End If
End If
Next A
Loop
Leider resettet sich der Controller selbst wenn ich viele Daten schreibe!
Spannungsversorgung ist ok, keine Spannungseinbrüche o.ä.
Vielleicht wisst ihr Rat!
MfG,
Areopag