demmy
20.11.2013, 20:13
Hi zusammen,
folgendes Problem, wie Ihr aus dem Titel schon entnehmen könnt, versuche ich Daten über eine RS485 zu Senden ohne die Automatische Sende und Empfangsumschaltung aber dafür mit Ausgangspuffer zu realisieren.
Ich habe es auf folgendem Weg versucht:
Do
' Prüfen ob der Ausgangspuffer leer ist
If _rs_bufcountw1 = 0 Then
Waitus 500
Rs485dir1 = 0 ' Auf Empfangsmodus schalten
End If
' Alle Daten empfangen
If _rs_bufcountr1 >= 17 Then
Rs485dir1 = 1 ' Auf Sendemodus schalten
Waitus 500
' Sende 17 Bytes aus dem Bytearray ab Position 1
Printbin #1 , S_bus_sendearray(1) , 17 ;
End If
Loop
Nur ist es so, das ich nicht immer alle Daten sauber zurück bekomme. Jetzt meine Frage:
Kann es sein das meine Wartezeiten vor bzw. nach dem Umschalten der Senderichtung zu kurz sind? Wie lang müssen die Wartezeiten denn Sein?
Gibt es denn nicht ein Interrupt, welches ausgelöst wird, wenn der Sendepuffer leer ist?
Oder gibt es einen anderen Weg das Problem zu lösen bzw. abzufragen ob alle Daten gesendet wurden?
Wie würdet / habt Ihr das Problem gelöst?
Vielen Dank schon mal.
folgendes Problem, wie Ihr aus dem Titel schon entnehmen könnt, versuche ich Daten über eine RS485 zu Senden ohne die Automatische Sende und Empfangsumschaltung aber dafür mit Ausgangspuffer zu realisieren.
Ich habe es auf folgendem Weg versucht:
Do
' Prüfen ob der Ausgangspuffer leer ist
If _rs_bufcountw1 = 0 Then
Waitus 500
Rs485dir1 = 0 ' Auf Empfangsmodus schalten
End If
' Alle Daten empfangen
If _rs_bufcountr1 >= 17 Then
Rs485dir1 = 1 ' Auf Sendemodus schalten
Waitus 500
' Sende 17 Bytes aus dem Bytearray ab Position 1
Printbin #1 , S_bus_sendearray(1) , 17 ;
End If
Loop
Nur ist es so, das ich nicht immer alle Daten sauber zurück bekomme. Jetzt meine Frage:
Kann es sein das meine Wartezeiten vor bzw. nach dem Umschalten der Senderichtung zu kurz sind? Wie lang müssen die Wartezeiten denn Sein?
Gibt es denn nicht ein Interrupt, welches ausgelöst wird, wenn der Sendepuffer leer ist?
Oder gibt es einen anderen Weg das Problem zu lösen bzw. abzufragen ob alle Daten gesendet wurden?
Wie würdet / habt Ihr das Problem gelöst?
Vielen Dank schon mal.