Zuordnung einer Busadresse Kategorie: 2W-Bus (von TN - 20.10.2003 18:43) | |
| |
Hallo, verzweifele an der Ã?bergabe der Busadresse an mein PIO-4. Benutze folgendes Prog.: thread main { // lokale Zeichenkette fuer LCD-Ausgabe string disp; // lokale Zeichenkette fuer TWB-Ein/Ausgabe string s; // lokale Variable vom Typ Long long l; // loeschen des LC-Display lcd.clear(); // Initialisierung des TWB twb.init(); // Zusammenstellen des Stringes fuer Commando "SET SENSOR ADDRESS" (Kommando 3) str.clear(s); str.putchar(s,0x03); // ! Kommando 3 str.putchar(s,0x85); // ! Sensoradresse bei gestecktem Jumper (85 dezimal) str.putchar(s,0x16); // ! frei vorgegebene Modemadresse str.putchar(s,0x00); // nicht relevant -> definiert auf 0 gesetzt str.putchar(s,0x00); // nicht relevant -> definiert auf 0 gesetzt str.putchar(s,0x00); // nicht relevant -> definiert auf 0 gesetzt str.putchar(s,0x01); // ! gewuenschte Sensoradresse str.putchar(s,0x00); // nicht relevant -> definiert auf 0 gesetzt // Ausgabe des Strings s auf den Zweidrahtbus twb.io(s); // Abfrage ob die Ausgabe ohne Fehler beendet und die Antwort empfangen wurde if (! twb.rxd()) // wenn keine Antwort dann LCD-Ausgabe "TIMEOUT" und Beenden des Programmes { wait lcd.ready(); lcd.clear(); disp="TIMEOUT"; lcd.print(disp); } // Test ob ein korrekter Antwortstring empfangen wurde else { // Auslesen der ersten 4 Bytes des Antwortstringes l=mem.getlong(s,0); // korrekter Antwortstring mit Bytes 0-3 = 0x03,0x10,0x01,0x00 if (l != 0x03100100) // bei fehlerhaftem Antwortstring LCD-Ausgabe "ERROR" { wait lcd.ready(); lcd.clear(); disp="ERROR"; lcd.print(disp); } else // Antwortstring korrekt, Sensormodul auf neue Adresse gesetzt // LCD-Ausgabe "ADR=1 OK" { wait lcd.ready(); lcd.clear(); disp="ADR=1 OK"; lcd.print(disp); } } // Programmende halt; } Das Modem blinkt und dann steht in der LCD "Timeout". Was mache ich falsch? GruÃ? TN | |
Antwort schreiben Antworten: Modul R2UM (von TN - 20.10.2003 21:27) Re: Zuordnung einer Busadresse (von TN - 20.10.2003 20:35) |