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

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)