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

Re: Sporadischer absturz edip Display Kategorie: I²C-Bus (von André H. - 31.08.2005 10:55)
Als Antwort auf Sporadischer absturz edip Display von Mike - 31.08.2005 0:01
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT V3.0
Hallo Mike,

Welche Firmwareversion des eDIP240 hast Du ? (siehe Aufkleber auf der Rückseite)
Bis Version 1.1 hat die Firmware beim I²C-Interface einen Bug gehabt, der ungefähr
dieser Fehlerbeschreibung entspricht.
Allerdings kann es auch mit Deinen Routinen zusammenhängen.
Du hast einige "wait" bei der Auswertung der empfangenen Daten.
Ich weiÃ? nicht, was die Aufgerufenen Funktionen bei Dir machen, aber wenn
nur bei einer Funktion nie ein True zurückgegeben wird, wartet der Thread an dieser Stelle ewig.
Und das bewirkt wiederum, das der Sendepuffer des eDIPs nicht gelesen wird und "volläuft".
Wenn dies passiert hält das eDIP solange an, bis mind. ein Byte aus dem Puffer gelesen wird.

Eine Bitte noch zur Benutzung des code-Tags:
Es reicht, wenn Du nur einmal am Anfang des Quellcodes <code> und
einmal am Ende </code> schreibst. Du muÃ?t nicht jede Zeile als neuen
Code-Bereich ausweisen.
Also z.B. so:
<code>thread xyz
{
 tuedies();
 tuedas();
}</code>
Das reicht völlig.

MfG André H.


> Hallo CC2 Gemeinde.
>
> Habe ein edip Display mit edip Bord an Der CC2 Unit NV mit Starterboard über i2c bus verbunden.
> Auf Dem Starterboard habe ich noch ein 24c32 eeprom in einsatz.
> Der zugriff aufs eeprom funktioniert ohne probleme.
> Aufs Display ist sporadisch nach einiger zeit nicht mehr zugreifbar, vorallem wenn ich Touch
> berührrungen über i2c an Die CC2 schicke.
> Sehr häufig hängt sich Das Display, auch nach dem ich am Starter Board Reset drücke, auf.
> Da ich kein Oszi habe weiÃ? ich jetzt nicht, was schlapp macht Das Display oder Der i2c Bus.
>
> Oder Liegt es an meiner Sendedaten verarbeitung.
> Programiere fürs Display ein Winamp player, Der Die Daten vom Display über ic2 auf CC2 dann Seriel
> zum PC schickt und damit über mein Delphi Code Der Winamp player ferngesteuert werden kann.
>
> Sourcecode CC2 Daten verarbeitung.
>
> thread TD
> //------------------------------------------------------------------------------
> {
> {
> r=edip.receiveframe(0,Display1);
>   {
>   a=edip.getRxData(Display1,t);
>    }
>    if a == 0 yield;
>    else
>     KennNummer = LoMidHiByteToInt (t[1],t[2],t[3]);
>      edip.text(data.TDAddr,12,10,3,"OK");
>      if t[0]=='W'
>       {
>       wait Winamp (t[0], KennNummer);
>       }
>      else if t[0]=='S'
>      {
>       wait TouchMakro (t[0],t[1],t[2],t[3],t[4]);
>       }
>      else if t[0]=='T'
>      {
>       wait TempMenue (t[0],t[1],t[2],t[3],t[4]);
>       }
>      else if t[0]=='L'
>       {
>       wait TouchMakro (t[0],t[1],t[2],t[3],t[4]);
>       }
>      else if t[0]=='B'
>       {
>       BarData (t[0],t[2],t[3]);
>       }
>      else if t[0]=='R'
>       {
>       wait TouchSchalter (t[0],t[1],t[2],t[3],t[4]);
>       }
>      
>     if t[2]==8
>       {
>       x=t[3];
>       s="YH" + x;
>       r=edip.sendframe(0, s, 0);
>       }
> }
> t[0] = ' ';
> }
>  
> Hatt jemand von euch eine Ide, wo eventuell der Fehler liegen könnte.
> Vielen dank im vorraus.
>
> M.f.G
>
> Mike
>


Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten: