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

Probleme mit i2ccom Kategorie: I²C-Bus (von Udo - 8.02.2004 14:56)
Ich nutze:
C-Control II Unit, eigenes Board, OSOPT_V2
Hallo,

ich habe Probleme mit der i2ccom Geschichte.
Das Verhalten ist etwas eigenartig. Wenn ich das Programm starte, geschieht zunächst überhaupt
nichts. Wird das erste mal ein Byte an die Schnittstelle gesendet, wird dies auch erkannt. Allerdings
wird nicht der tatsächliche Wert diese Bytes zurückgeliefert, sondern immer 204. Dieser Wert wird
jetzt auch ständig geliefert. i2ccom.rxd() ist ab jetzt immer wahr und es wird immer 204 ausgegeben.
Dies hört erst auf, wenn ich die Stromversorgung abschalte. Denn ist wieder Ruhe, bis das erste
Byte kommt.
Hier mein Testprogramm:

//------------
  thread main
//------------

{
 int counter, counter1, rxdata, txdata, identify;
 counter = 0;
 counter1 = 0;
 lcdext.init();
 lcdext.clear();
 hwcom.setspeed(hwcom.SPEED_19200);
 hwcom.set_S0CON(hwcom.set8O2);
 i2ccom.setDataPCF(7);
 i2ccom.defineCOM(1,6,0);
 identify = i2ccom.initCOM(1,0);
 lcdext.zahl4(identify);
 i2ccom.setFormat(1,i2ccom.set8O2);
 // i2ccom.setBaudRate(1,19200);
 i2ccom.setspeed(1,6);
 loop
  {
   if hwcom.rxd()
     {
      rxdata = hwcom.get();
      lcdext.delline(2);
      lcdext.line(2);
      lcdext.zahl5(counter);
      lcdext.zahl4(rxdata);
      txdata = rxdata;
      hwcom.put(txdata);
      counter = counter + 1;
     }
     
   if i2ccom.rxd(1)
     {
      i2ccom.setPort(1,1,1);
      rxdata = i2ccom.get(1);
      lcdext.delline(3);
      lcdext.line(3);
      lcdext.zahl5(counter1);
      lcdext.zahl4(rxdata);
      txdata = rxdata;
      i2ccom.put(1,txdata);
      i2ccom.setPort(1,1,0);
      counter1 = counter1 + 1;
     }
  }
}

Die Funktion zum initialisieren der Schnittstelle liefert -1, die Platine wird also erkannt. Weiterhin
funktioniert das Setzen der Ports auf der Schnittstellenplatine. Ich gehe daher davon aus, das die
Adressierung richtig eingestellt ist und die Register ordnungsgemä� beschrieben werden können.
Ich verwende OSOPT_V2, die Module i2ccom.hex, capture.hex und sys0001.hex sind geladen.

Im obigen Programm wird (wenn ich nichts falsch gemacht habe) hwcom und i2ccom mit gleichen
Parametern initialisiert. 19200 Baud, 8 Daten, 2 Stoppbits und ungerade Parität. Dieselben Werte
habe ich in Hyperterminal eingestellt. Wenn ich hwcom verwende passiert das, was passieren soll.
Ein eingetipptes Zeichen kommt als Echo zurück. Stecke ich das Kabel um und verwende i2ccom
bekomme ich (wie schon beschrieben) nach dem ersten Tastendruck ständig den Wert 204 geliefert.
Auch wenn gar keine Taste mehr gedrückt wird.

Hat noch jemand eine Idee?

Viele Grüsse
Udo


    Antwort schreiben


Antworten:

Re: Probleme mit i2ccom (von Udo - 11.02.2004 23:10)
    Re: Probleme mit i2ccom (von André H. - 13.03.2004 20:27)
        Re: Probleme mit i2ccom (von Udo - 14.03.2004 0:32)
            Re: Probleme mit i2ccom (von André H. - 14.03.2004 9:22)
                Re: Probleme mit i2ccom (von Udo - 14.03.2004 22:03)
    Re: Probleme mit i2ccom (von Udo - 13.03.2004 20:17)