Cool danke.
Wenn ich das richtig verstanden habe müsste das in etwa wie folgt aussehen.
Code:$regfile = "m2560def.dat" $crystal = 14745600 $baud = 921600 Config Com3 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 Enable Interrupts Enable Urxc2 On Urxc2 Buf_write Dim Base As Word Dim Top As Word Dim Wrpnt As Word Dim Rdpnt As Word Dim One_w As Byte Dim One_r As Byte Dim Buffer(260) As Byte Buf_init: Base = Varptr(buffer(1)) 'mem-adr von Buffer-base Top = Base + 260 'mem adr von bufer top Wrpnt = Base 'write pointer Rdpnt = Base 'read pointer Return Do 'Main Programm Loop Buf_write: One_w = Udr2 ' byte from UART Out Wrpnt , One_w ' into buffer Incr Wrpnt ' pointer + 1 If Wrpnt >= Top Then Wrpnt = Base ' wrap around Return Buf_read: Disable Urxc2 If Rdpnt = Wrpnt Then Enable Urxc2 One_r = 0 ' no data Else Enable Urxc2 One_r = Inp(rdpnt) ' read from pointer Incr Rdpnt ' pointer + 1 If Rdpnt >= Top Then Rdpnt = Base ' wrap around End If Return
Mir schwebt grad noch eine Funktion in form des Ischarwaiting vor (bzw. ein FlagBit). Das sollte allerdings kein Problem sein.
Danke nochmal für deine Hilfe.
MfG







Zitieren

Lesezeichen