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 - 13.07.2003 15:08)
Als Antwort auf Re: Evtl. Fehler im Modul eeprom.c2 von Rolf - 13.07.2003 13:44

Hallo Andrè,

Noch mal zur Ã?bersicht die beiden strittigen Funktionen:

/**Schreibzugriff einleiten****************************************/
function write(byte eepromaddr,int addr) returns int
{
 byte i;
  i=0;                     //--Bugfix by AH.
  eepromaddr= 160 or (eepromaddr shl 1);
  loop
  {
   if i2c.start(eepromaddr) break;
   i2c.stop();             //--RD./AH. stop nach Fehlschlag
   if i>=100 return FALSE;
   release;                //--RD. gibt thread frei
   i=i+5;                  //--RD. thread ist frei
   sleep 5;                //--RD. thread ist frei für 5ms
   //i=i+1;                //--RD. alt
   //sleep 1;              //--RD. alt
   capture i2c.flag;       //--RD. setzt thread gesperrt
  }
  i2c.write(addr shr 8);
  i2c.write(addr);
  return TRUE;
}

/**Lesezugriff einleiten*******************************************/
function read(byte eepromaddr,int addr) returns int
{byte i;
  i=0;
  eepromaddr= 160 or (eepromaddr shl 1);
  loop
  {
   if i2c.start(eepromaddr) break;
   if i>=100 return FALSE;
   i2c.stop();             //--RD./AH. stop nach Fehlschlag
   if i>=100 return FALSE;
   release;                //--RD. gibt thread frei
   i=i+5;                  //--RD. thread ist frei
   sleep 5;                //--RD. thread ist frei für 5ms
   //i=i+1;                //--RD. alt
   //sleep 1;              //--RD. alt
   capture i2c.flag;       //--RD. setzt thread gesperrt
  }
  i2c.write(addr shr 8);
  i2c.write(addr);
  i2c.start(eepromaddr or 1);
  return TRUE;
}

Alle weiteren Funktionen gegenüber meiner letzten Version unverändert.
Ich teste sie grade und es schaut prima aus...

GruÃ? Rolf




    Antwort schreiben


Antworten: