Probleme mit i2ccom Kategorie: I²C-Bus (von Udo - 8.02.2004 14:56) | ||
| ||
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) |