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

Re: Evtl. Fehler im Modul eeprom.c2 Kategorie: I²C-Bus (von Rolf - 11.07.2003 21:25)
Als Antwort auf Re: Evtl. Fehler im Modul eeprom.c2 von André H. - 11.07.2003 20:33

Hallo André,
 
> > Mit dem �berarbeiten des I²C-Capture wäre ja auch evtl. das Problem des Handlings mehrfacher
> > Eeprom-operationen im Zusammenhang mit Threads wie in der Ergänzung zum Bug beschrieben,
> > unter zu bringen. Sicheres Threading ist eine ganz schön komplizierte Angelegenheit... :-)
> >
> Ein sicheres Threading ist auch jetzt ohne weiteres gewährleistet.
> Du kannst von jedem Thread auf die EEProms zugreifen, ohne daÃ? etwas passiert.

Das haben wir der Abfrage in write() und read() mit:
if i>=100 return 0;
zu verdanken. Ich frage mich jedoch, ob im Fall von Hardwarefehlfunktionen (wie in diesem Fall)
einfach kommentarlos abgebrochen werden darf. Es wäre in diesem Zusammenhang WICHTIG,
den Rückgabewert der Funtion zu prüfen, nur da read und write gekapselte Funtionen sind und die
Rückgabewerte nicht an das aufrufene Programm (mich) gehen, Beispiel:

function writeint(byte eepromaddr,int addr, int data)
{
 capture i2c.flag;
  write(eepromaddr,addr); //<----- keine Verarbeitung des Rückgabewertes
  i2c.write((data & 0xFF00) shr 8);//<----- Wird auch ausgeführt wenn write fehlschlug
  i2c.write(data & 0x00FF);//<----- Wird auch ausgeführt wenn write fehlschlug
  i2c.stop();//<----- Wird auch ausgeführt wenn write fehlschlug
 release;
} //<----- Der Thread bekommt nichts vom Problem mit! ein "return wert_aus_write;" fehlt für meine Begriffe.
//<----- Da hat's gerade ne Katastrophe auf dem i2c-Bus gegeben und der Thread freut sich das er wieder dran ist...

kriege ich also nie mit, ob der Wert geschrieben wurde oder ob per Timeout abgebrochen wurde.
In dem Fall müste entweder mit einem quit 63; und einer Fehlermelung auf dem Display auf den Hardwarefehler
aufmerksam gemacht werden oder aber ich als Programm mu� die Möglichkeit bekommen, auf Erfolg zu prüfen.
Eine zentrale Fehlerroutine mit der vorbestimmbaren Option Break/Continue wäre auch denkbar und evtl. besser.
Das macht die Funktionen zwar etwas Aufwendiger aber auch Sicherer. Das trift für eine ganze Reihe von (älteren)
Funktionen des CC2 zu und für mein Emfpinden gehört das dringend gefixt. Wenn ich mir eine Heizungsteuerung
vorstelle wo das Schreiben und Lesen von Daten von einem °%-Zufallsfaktor abhängt, wird mir anders :-) :-) ... warm!

Ausserdem wird hier im Beispiel ggf. zwar der Adressierungsversuch abgebrochen "if i>=100 return 0;"
aber dann munter mit
  i2c.write((data & 0xFF00) shr 8);
  i2c.write(data & 0x00FF);
  i2c.stop();
weiter gearbeitet... eigentlich müste dies geprüft werden denn sonnst passiert sonst was auf dem i2c-Bus..
nur nicht das Richtige. Das gilt auch für alle anderen Kapselfunktionen aus eeprom.c2

Davon kann immerhin die Zuverlässigkeit des Gesamtsystems abhängig sein, das aktuelle eeprom.c2 würde ich
daher nicht als im Threading Sicher bezeichnen weil der Fehlerfall bisher im Modul ganze 2 mal schlicht ignoriert
wird. Die Auswirkungen auf andere i2c-Bausteine aus dem Fehlerfall kann ich nicht abschätzen.
Ich möchte Dich bitten, das Eeprom-Modul und Abhängige bald zu überarbeiten... :-)

GruÃ? Rolf





    Antwort schreiben


Antworten:

Re: Evtl. Fehler im Modul eeprom.c2 (von André H. - 11.07.2003 22:57)
    Re: Evtl. Fehler im Modul eeprom.c2 (von Rolf - 12.07.2003 0:53)
        Re: Evtl. Fehler im Modul eeprom.c2 (von André H. - 12.07.2003 8:56)
            Re: Evtl. Fehler im Modul eeprom.c2 (von Rolf - 12.07.2003 23:01)
                Re: Evtl. Fehler im Modul eeprom.c2 (von André H. - 13.07.2003 10:10)
                    Re: Evtl. Fehler im Modul eeprom.c2 (von Rolf - 13.07.2003 13:44)
                       Re: Evtl. Fehler im Modul eeprom.c2 (von André H. - 13.07.2003 20:02)
                          Re: Evtl. Fehler im Modul eeprom.c2 (von Rolf - 13.07.2003 23:40)
                             Re: Evtl. Fehler im Modul eeprom.c2 (von André H. - 14.07.2003 9:15)
                                Re: Evtl. Fehler im Modul eeprom.c2 (von Rolf - 14.07.2003 12:54)
                                   Re: Evtl. Fehler im Modul eeprom.c2 (von André H. - 14.07.2003 15:48)
                                     Re: Evtl. Fehler im Modul eeprom.c2 (von Rolf - 15.07.2003 2:57)
                                       Re: Modul eeprom.c2 (von André H. - 15.07.2003 8:25)
                                         Re: Modul eeprom.c2 (von Rolf - 15.07.2003 10:47)
                                           Re: Modul eeprom.c2 (von 89984984/8 - 7.04.2005 10:32)
                                           Re: Modul eeprom.c2 (von André H. - 15.07.2003 11:50)
                                             Re: Modul eeprom.c2 (von Rolf - 15.07.2003 19:31)
                                               Re: Modul eeprom.c2 (von André H. - 15.07.2003 20:26)
                                                 Re: Modul eeprom.c2 (von Rolf - 15.07.2003 22:48)
                                                   Re: Modul eeprom.c2 (von Rolf - 18.07.2003 0:43)
                                                     Re: Modul eeprom.c2 (von André H. - 18.07.2003 18:19)
                                                       Re: Modul eeprom.c2 (von Rolf - 18.07.2003 18:35)
                                                         Re: Modul eeprom.c2 (von André H. - 18.07.2003 19:24)
                                                           Re: Modul eeprom.c2 (von Rolf - 18.07.2003 21:38)
                                                             Re: Modul eeprom.c2 (von Rolf - 18.07.2003 22:53)
                                                               Re: Modul eeprom.c2 (von Rolf - 18.07.2003 22:55)
                                                                 Re: Modul eeprom.c2 (von Rolf - 19.07.2003 1:36)
                                                                   Re: Modul eeprom.c2 (von André H. - 19.07.2003 8:41)
                                                                     Re: Modul eeprom.c2 (von Rolf - 19.07.2003 13:02)
                                                                       Re: Modul eeprom.c2 (von André H. - 22.07.2003 10:18)
                                                                         Re: Modul eeprom.c2 (von Rolf - 22.07.2003 14:04)
                                                                           Re: Modul eeprom.c2 (von André H. - 22.07.2003 14:42)
                                                                       Re: Modul eeprom.c2 (von Rolf - 19.07.2003 16:39)
                                                                         Re: Modul eeprom.c2 (von André H. - 22.07.2003 10:24)
                                                                           Re: Modul eeprom.c2 (von Rolf - 22.07.2003 11:26)
                                                                             Re: Modul eeprom.c2 (von André H. - 22.07.2003 14:13)
                                                                               Re: Modul eeprom.c2 (von Rolf - 22.07.2003 15:04)
                                                                                 Re: Modul eeprom.c2 (von André H. - 23.07.2003 16:42)
                                                                                   Re: Modul eeprom.c2 (von Rolf - 23.07.2003 21:28)
                                                                                 Re: Modul eeprom.c2 (von Rolf - 23.07.2003 12:16)
                                                                                   Re: Modul eeprom.c2 (von André H. - 23.07.2003 16:28)
                                                             Re: Modul eeprom.c2 (von André H. - 18.07.2003 22:43)
                             Re: Evtl. Fehler im Modul eeprom.c2 (von Rolf - 14.07.2003 0:29)
                       Re: Evtl. Fehler im Modul eeprom.c2 (von Rolf - 13.07.2003 15:16)
                       Re: Evtl. Fehler im Modul eeprom.c2 (von Rolf - 13.07.2003 15:12)
                       Re: Evtl. Fehler im Modul eeprom.c2 (von Rolf - 13.07.2003 15:08)
Re: Evtl. Fehler im Modul eeprom.c2 (von Rolf - 11.07.2003 22:42)