Anfangen würde ich z.B. so:
Code:Dim Uart_buffer As String * 100 Dim Byte_empfangen As Byte Dim Buffer_overlay(101) As Byte At Uart_buffer Overlay Dim Buffer_pointer As Byte On Urxc Urxc_isr Enable Urxc Enable Interrupts Do 'deine Hauptschleife Loop End Urxc_isr: If Buffer_pointer < 100 Then Incr Buffer_pointer 'falls zuviele zeichen kommen, ist hier die Bremse Byte_empfangen = UDR 'hier könntest du jetzt einige Checks machen, wie z.B. auf CR/LF oder auch eine Vorauswertung des Empfangs 'wenn du z.B. das CR/LF gar nicht im Buffer abspeichern willst, dann lässt du den Befehl eben weg und setzt stattdessen nur ein Flag 'welches du dann in der Hauptschleife auswertest. 'auf die Art musst du nicht so viel machen, wenn deine Übertragung vollständig ist, sondern verteilst 'dies auf die relativ langen Pausen zwischen den eingehenden Zeichen 'hier kannst du auch deinen Timer starten um zu überprüfen, ob die Übertragung nicht aus irgendeinem Grund aufgehört hat Buffer_overlay(buffer_pointer) = Byte_empfangen 'und schließlich das Zeichen im Buffer abspeichern Return







Zitieren

Lesezeichen