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, > > 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