Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Stören Threads die serielle Übertragung? Kategorie: Programmierung (von Michael Zapf - 15.09.2007 13:07)
Als Antwort auf Re: Stören Threads die serielle Übertragung? von André H. - 14.09.2007 10:45
Ich nutze:
C-Control II Unit, CC2-ReglerBoard, OSOPT V3.1
> Hallo Michael,
>
> Ein Stören der hwcom.receive()-Funktion des Main-Threads in rbports.c2 kann
> ich definitiv ausschlieÃ?en.
> Es gibt keinerlei gemeinsam Ressourcen, die genutzt werden.

Gemeinsame Ressource  = CPU-Zeit? Könnte es sein, dass der der FIFO des UART oder was auch immer die
Schnittstelle bedient, einfach überläuft, während die CPU gerade einen anderen Thread bedient?

Ich glaube auch, dass es nicht der eine Thread von rbports ist, sondern irgendein Thread. Der rbports.main tut keine
besonders aufwändigen Dinge, und ich habe noch einen zweiten Thread (der die Tastatur abfragt). Doch das Anhalten
des rbports.main hat die Sache viel stabiler gemacht, und das ist schlicht eine Beobachtung. �brigens läuft noch immer
ein Anwendungsthread im Hintergrund, und das erklärt auch, warum es einmal noch zu einem fehlenden Byte kam,
trotz der Deaktivierung von rbports.main.

Worauf ich aufmerksam machen wollte, ist, dass man sich mit dem Einbinden eines Moduls einen aktiven Thread
"einhandelt", von dem man zunächst gar nichts wei�. Das sollte man beim Debugging beachten.

> Das Problem ist sicher ein anderes.
> Sendest Du grö�ere Datenrahmen in einem Stück, und das mit höherer Baudrate (57.600Bd)?

Nein, ich nutze 9600 bps und sende einmal etwa 1KiB und dann nochmal 2KiB, beides mit hwcom.receive
entgegengenommen. Vorher kommt jeweils ein Längenwort und ein CRC.

> Das geht mit Hilfe von hwcom.inbuffercnt().
> Erst wenn die erwartete Menge an Daten eingetroffen ist, sollte man mit hwcom.receive()
> die Daten einlesen.
> Ich werde die Receive-Funktion in hwcom.c2 dahingehend ändern.

Gut, das ist ein anderer Weg. Geht sicher auch.

Ich hab' im �brigen einen CRC16 geschrieben und zu spüren bekommen, warum man so etwas tabellenbasiert und nicht
bitbasiert tun sollte. Wenn du daran Interesse hast, melde dich.

Michael


    Antwort schreiben


Antworten:

Re: Stören Threads die serielle Übertragung? (von André H. - 30.09.2007 18:59)
    CRC16 (war Re: Stören Threads die serielle Übertragung?) (von Michael Zapf - 17.10.2007 15:12)
        Re: CRC16 (war Re: Stören Threads die serielle Übertragung?) (von Michael Zapf - 17.10.2007 15:16)