Re: Limitierung bei Str_Printf() ??? Kategorie: Programmierung C (von Joerg - 19.11.2010 8:20) | ||
Als Antwort auf Re: Limitierung bei Str_Printf() ??? von jo - 19.11.2010 7:56 | ||
| ||
> > > 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%xn"); > > > 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 > > 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 > 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%xn"); > > > 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); > > > > > > > > > hier die Ausgabe > > > > > > 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 | ||
Antwort schreiben Antworten: Re: Limitierung bei Str_Printf() ??? (von Jo - 4.12.2010 9:15) Re: Limitierung bei Str_Printf() ??? (von PeterS - 6.12.2010 19:58) Re: Limitierung bei Str_Printf() ??? (von Jo - 7.12.2010 8:15) Re: Limitierung bei Str_Printf() ??? (von Torsten - 4.12.2010 11:00) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum