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

Vorteile mit cap.c2 ? Kategorie: Programmierung (von Norbert - 14.06.2006 18:09)
Ich nutze:
C-Control II Unit, CC2-Application-Board, OSOPT V3.0
Hallo cc2 Fans,

seit gut 2 Jahren laufen die threads fast klaglos, es gibt jedoch ein paar unschöne Dinge, die
ich nun endlich anpacken muss.

logbuch:
ich beobachte geringe Störungen beim Schreiben von strings in das RAM device (Port Version).

alle 30 Minuten wird ein string von 30 Zeichen geschrieben, der Solarergebnisse enthält.
Zusätzlich werden von anderen threads ca. 10 spontane Ereignisse pro Tag (Dämmerung,
Tastaturbefehle) geschrieben.
 
Etwa nach 3 bis 10 Tagen kommt es zu einzelnen verstĂĽmmelten Zeichen im Logbuch. Ein Bit im
string ist gekippt, auffällig bei Ziffern, die dann als Buchstabe in der Tabelle hervortreten.
(dump logbuch in eine Excel csv Datei).


Meine erste Idee war, die Function cap.c2 (Version 1.04) einzusetzen. Aber eifrige Forum Leser
wissen, dass ein doppeltes capture zum deadlock fĂĽhrt.

Also fällt die folgende Idee


function write (string event)

...

{
    wait cap.capture (0);

    // hole logbuch_pointer
    ...
    //schreibe string ins RAM
    ram.writestr(logbuch_pointer,event);
    // increment logbuch_pointer
    ...
    release (0);
    ...

}


wohl ins Wasser, weil bei genauerem Hinsehen das Schreiben von strings
z.B. mit der function ram.c2 bereits capture enthält und somit die gefürchtete
doppelte capture Situation entsteht.


Nun könnte ich natürlich vor dem Eintritt in die kritische Phase die thread Prio
erhöhen, damit das Schreiben ins logbuch von niemand gestört werden kann,
aber es scheint mir gefährlich.

Ich brauche eine gute Idee zur Ressourcen Verwaltung des RAM Moduls.


GrĂĽĂ?e aus dem Norden, Norbert



    Antwort schreiben


Antworten:

Re: Vorteile mit cap.c2 ? (von André H. - 15.06.2006 22:05)
    Re: Vorteile mit cap.c2 ? (von Norbert - 16.06.2006 7:55)
Re: Vorteile mit cap.c2 ? (von krassos - 15.06.2006 16:57)