Ringbuffer Interrupt Uart und Co.

Postby had » Sat Apr 10, 2010 12:00 am

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
Attachments
Me2010.1.rar
(243.92 KiB) Downloaded 50 times
had
 
Posts: 15
Joined: Fri Jan 03, 2014 1:48 pm

Postby frankl » Tue Apr 13, 2010 12:00 am

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.
frankl
 
Posts: 125
Joined: Thu Jan 02, 2014 10:42 am

Postby had » Sat Apr 17, 2010 12:00 am

Ja, das habe ich mir auch schon gedacht. Leider habe gar keine Idee
wie ich den Ringuffer bzw. die Interruptroutine synchronisieren kann.
had
 
Posts: 15
Joined: Fri Jan 03, 2014 1:48 pm

Postby frankl » Tue Apr 20, 2010 12:00 am

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.
Attachments
Elektor.1.zip
(330.28 KiB) Downloaded 47 times
frankl
 
Posts: 125
Joined: Thu Jan 02, 2014 10:42 am

Postby had » Sun Apr 25, 2010 12:00 am

Danke, der Tip war ein Treffer. Habe jetzt einen Ansatz gefunden.
werden später noch mal berichten bzw. Lösung posten.
had
 
Posts: 15
Joined: Fri Jan 03, 2014 1:48 pm


Return to R32C-Projekt

Who is online

Users browsing this forum: No registered users and 1 guest

cron