Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > 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