Ahh ok Vielen Dank.
Mein Code sieht jetzt so aus:
Ich bin mal gespannt, ob das nun so funktioniert?Code:Set Ucsr1b.txcie1 On UTXC1 Txd_Ready Do ' 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 Txd_Ready: ' Prüfen ob der Ausgangspuffer leer ist If _rs_bufcountw1 = 0 Then Waitus 500 Rs485dir1 = 0 ' Auf Empfangsmodus schalten End If Return
Eigentlich müsste ich doch die Zeile " If _rs_bufcountw1 = 0 Then" auch weglassen können oder? Da das Event nur gefeuert wird, wenn der komplette Sendepuffer leer ist?
Ok, es will einfach nicht funktionieren, egal was ich mache.
RS485 , CONFIG SERIALOUT, das Serial TX complete interrupt vertragen sich wohl nicht zusammen in Bascom kann das sein?
Ich weiß aktuell nicht weiter. Alles was ich erreichen wollte, war im Hintergrund über eine RS485 Daten zu versenden und zu empfangen.
Hat niemand mehr eine Idee????
Hast du denn auch die Interrupts global freigegeben (Enable Interrupts)?
Ansonsten zeige doch mal dein komplettes Programm, sonst müssen wir raten, was dort stehen könnte.
Hi,
also die globalen Interrupts sind freigegeben. Hmm also es ist so, dass das restliche Programm funktioniert und nur der Teil mit dem Senden der Daten nicht funktioniert. Ich denke das gesammte Programm würde hier den Rahmen sprengen.
Aber im wesentlichen habe ich den betroffenen Teil weiter oben schon gepostet. Das UTXC1 Interrupt ist das einzige Interrupt, welches ich aktuell verwende. Sonst nur noch 2 Timer die aber einwandfrei funktionieren im Einsatz.
Im Grunde soll nichts anderes passieren, als in der Hauptschleife zu schauen ob 17 Byte im Eingangspuffer sind. Sind die Bytes da, sollen über den Ausgangspuffer 17 Byte zurück gesendet werden. Da man ja laut Bascom Hilfe zusammen mit dem Ausgangspuffer nicht die automatische Senderichtungsumschaltung verwenden darf, dachte ich ich kann das über das UTXC-Interrupt lösen.
Könnte es aber sein, das der Ausgangspuffer auch dieses UTXC-Interrupt werwendet und es deshalb nicht geht?
Mit dem oben gepostetetn Code funktioniert es gelegentlich einmal Daten zu Empfangen und zu senden, danach geht nichts mehr!
Hat niemand mehr eine Idee?![]()
Lesezeichen