Hallo zusammen,

ich wollte wir einen kleinen Sendepuffer selber basteln, um Daten mittels UART über eine RS485 zu senden.
Dazu habe ich mir überlegt die Daten aus einem Bytearray nacheinander zu übertragen. Dafür zähle ich nach jedem Byte einen Zeiger um eins hoch.
Das Hochzählen und das Senden des nächsten Bytes soll im TXC interrupt erfolgen. Allerdings liegt genau hier das Problem. Es wird nur das erste Byte gesendet und dann wars das.
könnt Ihr mir erklären warum?

Das Programm sieht folgendermaßen aus:

Code:
' Interrupts global zulassen
Enable Interrupts
' Sendeinterrupt UART1
Enable Utxc1
On Utxc1 Onutxc1

Declare Sub Senden1  

Rs485dir1 Alias Portb.1
Config Rs485dir1 = Output
Rs485dir1 = 0                                               ' Auf Empfangsmodus schalten

Sub Senden1

   Rs485dir1 = 1                                            ' Auf Sendemodus schalten
   Sendezeiger1 = 1                                         ' Zeiger wieder auf Anfang setzen
   Waitus 10
   Udr1 = S_bus_sendearray(sendezeiger1)                    ' Nächstes Byte senden an UART I/O Data Register

End Sub

Onutxc1:

   Incr Sendezeiger1
   If Sendezeiger1 < 18 Then
      Toggle led
      Udr1 = S_bus_sendearray(sendezeiger1)
   Else
      Waitus 10
      Rs485dir1 = 0                                         ' Auf Empfangsmodus schalten
   End If

Return
Das Senden soll beginnen, wenn das Unterprogramm Senden1 aufgerufen wird. Ich habe auch eine LED am µC die toggelt wenn das Interrupt aufgerufen wird. Sie toggelt genau einmal, Und ich empfange nur ein Byte!

Könnt Ihr mir bitte Helfen, ich weiß nicht wo mein Fehler ist.

Viele Grüße