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> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > > > > > > > Hallo, > > > > > > > ich möchte über Printf Arraywerte über RS232 ausgeben. > > > > > > > > > > > > > > Das Codefragment zum reproduzieren sieht so aus: Mit in Summe 20 Argumenten OK, > > > > > > > ab 21 Argumenten wird alles ab 20 ignoriert > > > > > > > > > > > > > > for(i=0;i<48;i++){mkmh[i]=i;} > > > > > > > Serial_WriteText(COM1,"18%x\n"); > > > > > > > Str_Printf(send_str,"%sH%04x.%04x.%04x.%04x.%04x.%04x.%04x.%04x.%04x.%04x.%04x. > > > > > > > %04x.%04x.%04x.%04x.%04x.%04x.%04x.%s","msg_start", > > > > > > > mkmh[0],mkmh[1],mkmh[2],mkmh[3],mkmh[4],mkmh[5],mkmh[6],mkmh[7],mkmh[8],mkmh[9], > > > > > > > mkmh[10],mkmh[11],mkmh[12],mkmh[13],mkmh[14],mkmh[15], > > > > > > > mkmh[16],mkmh[17], > > > > > > > "msg_end"); > > > > > > > Msg_WriteText(send_str); > > > > > > > Serial_WriteText(COM1,send_str); > > > > > > > > > > > > > > > > > > > Hallo Jo, > > > > > > > > > > > > gibt es einen Grund, weshalb Du das Str_Printf nicht in einer Schleife benutzt? > > > > > > > > > > > > Grüße Joerg > > > > > <K>Hallo Jörg, > > > > > ja, 2 Gründe. > > > > > a) Im Beispiele hier ist is ein Array, in real sind es verschiedene Var. > > > > > > > > Kann man verschiedenen Vars nicht in ein Array legen? > > > > > > > > > b) ich brauche die Daten in einem String; ein Str_Copy( x, y, 0xFFFF) in einer Schleife um den > > > > > String zusammenzubasteln ist laufzeittechnisch zu langsam. > > > > > Viele Grüße Jo</K> > > > > > > > > > > > > > Bist Du dir mit der Laufzeit sicher? > > > > > > > > Ich habe schon bei etlichen Konstrukten die Zeit gemessen und es war oftmals anders als > > > > ich erwartet hätte. Gerade wenn man Serial_WriteText mit niedrigen Baudraten benutzt, > > > > wird die meiste Zeit beim schreiben der seriellen Daten verbraucht und nicht beim formatieren. > > > > Ich würde das ganze mit einem Array machen und die kurzen Strings einzeln senden. > > > > Bei der Adressierung des Arrays würde ich Konstanten verwenden, > > > > die den Namen der Variablen entsprechen (enums gibt es ja leider nicht). > > > > > > > > Grüße Jörg > > > > > > > > > > > > > > > > > > > > > Serial_WriteText(COM1,"19%x\n"); > > > > > > > Str_Printf(send_str,"%sH%04x.%04x.%04x.%04x.%04x.%04x.%04x.%04x.%04x.%04x.%04x. > > > > > > > %04x.%04x.%04x.%04x.%04x.%04x.%04x.%04x.%s","msg_start", > > > > > > > mkmh[0],mkmh[1],mkmh[2],mkmh[3],mkmh[4],mkmh[5],mkmh[6],mkmh[7],mkmh[8],mkmh[9], > > > > > > > mkmh[10],mkmh[11],mkmh[12],mkmh[13],mkmh[14],mkmh[15], > > > > > > > mkmh[16],mkmh[17],mkmh[18], > > > > > > > "msg_end"); > > > > > > > Msg_WriteText(send_str); > > > > > > > Serial_WriteText(COM1,send_str); > > > > > > > > > > > > > > > > > > > > > <B> hier die Ausgabe</B> > > > > > > > > > > > > > > msg_startH0000.0001.0002.0003.0004.0005.0006.0007.0008.0009.000A.000B.000C.000D.000E. > > > > > > > #000F.0010.0011.msg_end > > > > > > > msg_startH0000.0001.0002.0003.0004.0005.0006.0007.0008.0009.000A.000B.000C.000D.000E. > > > > > > > 000F.0010.0011.0012 > > > > > > > > > > > > > > Nun die 100$ Frage: Gibt es in der Implementierung von Str_Printf eine Limitierung? > > > > > > > > > > > > > > Viele Grüße > > > > > > > > > > > > > > Jo > > > > > > Hallo Peter, > > > ich möchte die Frage gerne noch an dich stellen, ob es eine Begrenzung der Args. bei Str_Printf() > > > besteht. Mir ist klar, dass dein Hauptthema z.Z. wohl eher der Interpreterabsturz bei größeren > > > Programmen ist, wenn du aber mal ne min. Zeit hast, wäre es super wenn du eine Antwort geben > > > Könntest. > > > Danke und Grüße > > > > > > Jo > > > > Nein, es gibt keine Limitierung. Ich habe am Wochenende einen Fehler gefunden, der den > > Formatierungsstring abgeschnitten hat. Der Bug ist gefixed. > > > > Gruss Peter > Danke Peter für die Antwort und den fix :-)