Mega32: Bug in Stringverarbeitung ? Kategorie: Programmierung C (von Hannes24 - 16.01.2017 8:06) | ||
| ||
Hallo, ich möchte auf ein Grafikdisplay über die ser. Schnittstelle String-Kommandos schicken. Z.B. t0.txt="10:11:12"ÿÿÿ (ÿÿÿ = 3x 0xFF) Das folgende Programm reproduziert den Fehler. Während die erste for-next Schleife problemlos abläuft, es wird 4x der gewünschte String ausgegeben, wird bei der 2. for-next Schleife der String nur 1x ausgegeben, dann stürtzt der Interpreter ab. Bei einem anderen Programm ist auch die Real-Time-Clock stehen geblieben. // IDE 2.40 // Programm Start mit Hardware Reset // Ausgabe: // t0.txt="10:11:12"ÿÿÿt0.txt="10:11:12"ÿÿÿt0.txt="10:11:12"ÿÿÿt0.txt="10:11:12"ÿÿÿt1.txt="10:11:12"ÿÿÿ byte buffer[SERIAL_BUF(25,30)]; word counter; void main(void) { Serial_Init_IRQ(0,buffer,25,30,SR_8BIT|SR_1STOP|SR_NO_PAR,SR_BD38400); byte Stunde,Minute,Sekunde,n; Stunde=10; Minute=11; Sekunde=12; char text1[20], textout[20]; for (n=0; n<4; n++) { Str_Printf(text1,"%02d:%02d:%02d",Stunde,Minute,Sekunde); // erzeuge String Uhrzeit text1= "10:11:12" Str_Printf(textout,"t0.txt="%s"%c%c%c",text1,0xFF,0xFF,0xFF); // erzeuge String textout t0.txt="10:11:12"ÿÿÿ Serial_WriteText(0,textout); counter=400; while(counter--); } //----------------------------------------------------------------------------- for (n=0; n<4; n++) { Str_Printf(text1,"%02d:%02d:%02d",Stunde,Minute,Sekunde); TFT_WriteString2Text(text1); } while(1); } void TFT_WriteString2Text(char Text[]) { char text2TFT[20]; Str_Printf(text2TFT,"t1.txt="%s"%c%c%c",Text,0xFF,0xFF,0xFF); Serial_WriteText(0,text2TFT); counter=400; while(counter--); } | ||
Antwort schreiben Antworten: |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum