Prog hängt sich auf bei CSTART in I2C.C2 Kategorie: I²C-Bus (von Klaus - 27.09.2003 13:10) | |
| |
Hallo, ich brauche mal wieder Hilfe. Will eine Relais-Platine mit PCD8574 und C-MOS 4049 ansteuern. DIE VORGESCHICHTE: Zu Testzwecken habe ich mir mal ein PCF mit Sockel auf eine Mini.Platine gelötet und nur die Spannungsversorgung und den I2C Bus angeschlossen. Dann wollte ich min on/off/in/out mal rumprobieren. Als ich dann die aktuelle PCF.C" runtergeladen hatte, musste ich feststellen, dass sich die Funktionen beide in der Zeile " if not i2c.cstart(Addr[addr]) {i2c.stop();return 0;}" aufhängen. Einfach mal "//" eingefügt und es lief. Bis dahin war es nicht schlimm. Nun habe ich mir eine Platine fertig gemacht mit 5 PCF8574. Alle Verbindungen und Anschlüsse geprüft und dann die ICs aufgesteckt. Und nun wollte ich wieder zum Testen die Funktionen on/off/in/out verwenden, aber alle Ports bliben auf high. Also kleines Testprogramm mit Ausgabe geschrieben, damit ich am Rechner sehen kann, wo es klemmt. hwcom.init(); hwcom.setspeed(8); i2c.init(); pcf.init(); s="Init";hwcom.print(s); i=pcf.init(); s=" ok ";str.putint(s,i);hwcom.print(s); hwcom.ret(); //POS1 s="Port off";hwcom.print(s); i=pcf.off(7,0); s=" ok ";str.putint(s,i);hwcom.print(s); hwcom.ret(); Leider musste ich feststellen, dass sich das Prog wieder bei CSTART in I2C aufhängt :( Ich habe daraufhin noch einmal alle aktuellen Modue runtergelagen und die Testplatine mit nur einem PCF angeschlossen. Keine �nderung. Also: wenn ich die Abfrage "i2c.cstart(pcf.Addr[x])" in PCF.C2 drinlasse, hängt sich das Prog auf und wenn ich die Zeile rausnehme bleiben die Ports bei i2c.init(); pcf.init(); pcf.out(7,0) oder pcf.off(7,x); alle auf high. Auch ein direkter Aufruf der Funktion i=i2c.cstart(pcf.Addr[x]) führt zum Hänger in der main. Die Ausgabe oben unter "//POS1" ergibt 1152 = 10010000000. Wenn ich das richtig verstanden habe hat er mein PCF unter Adr. 7 gefunden und man kann sagen, dass der Bus ok ist. Irgendwie bin ich an dem Punkt, an dem ich nicht mehr weiter weiss : HILFE :) Ich drehe hier am Rad, bitte helft mir. �brigens: aktuelles OS ist drin: 2001/08/19 In der I2C.C2 habe ich noch den Eintrag "requires : vmcodes.c2, capture.hex release >= 2003/9/10" gefuden. In meiner vmcodes Datei steht im header:"release : 2000/09/25", eine neuere habe ich nirgens gefunden. Eine capture.hex finde ich überhaupt nicht, wie kann ich es prüfen? Kann es daran liegen? Schon mal DANKE!!!!!!! Gru� Klaus PS: habe auch mal ein anderes neues PCF genommen, fnzt auch nicht. Die ist ein PCF8574AP, wäre also über die Adresse 8-15 aus der PCF.C" ansteuerbar. Damit wirft sich aber noch eine frage auf: wenn in dem int-Wert als return von pcf.init() das 11. Bit für das intere LCD steht, kann man die Adresse 2 dann nicht mehr für PCF8574AP verwenden? | |
Antwort schreiben Antworten: capture.hex laden ! (von André H. - 27.09.2003 14:01) Das ist die Rettung (von Klaus - 27.09.2003 18:08) Re: Das ist die Rettung (von André H. - 7.10.2003 20:21) |