Page 1 of 1

PostPosted: Sat Apr 10, 2010 12:00 am
by had
Hallo R32C User,

Ich möchte gerne ein Protokoll scheiben wie z.B.

DLE STX command daten DLE ETX checksum

nur habe ich das Problem wenn ich die zeichen folge
sende das sich der Ringbuffer verschluckt bzw. Interrupt nicht erkannt wird?

Als ich sende hex 10 02 die 10 wir wir erkannt hex 02 nicht.

Hat jemand einen Idee woran das liegen kann in meinen Code?
Hat jemand eine Beipiel für den R32C?


Gruß

Hans

PostPosted: Tue Apr 13, 2010 12:00 am
by frankl
Auf den ersten Blick würde ich sagen Du bekommst einen Overrun Error weil die ankommenden Daten nicht schnell genug abgeholt werden. Deine Software macht keine Fehlerbehandlung, also empfängst Du ab diesem Punkt gar keine Daten mehr.

PostPosted: Sat Apr 17, 2010 12:00 am
by had
Ja, das habe ich mir auch schon gedacht. Leider habe gar keine Idee
wie ich den Ringuffer bzw. die Interruptroutine synchronisieren kann.

PostPosted: Tue Apr 20, 2010 12:00 am
by frankl
Ich denke nicht das Du ein Problem mit der UART oder dem Interrupt hast. Das Problem ist in der parser-Routine.
Ich habe den Parser herausgenommen, und in main() die ankommenden Zeichen einfach mit uart1_putc(rxd1buf[rxd1outp]) wieder herausgeschickt. Damit kommt alles richtig an, es werden keine Zeichen verschluckt.

PostPosted: Sun Apr 25, 2010 12:00 am
by had
Danke, der Tip war ein Treffer. Habe jetzt einen Ansatz gefunden.
werden später noch mal berichten bzw. Lösung posten.