Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Mega32: Bug in Stringverarbeitung ? Kategorie: Programmierung C (von Hannes24 - 16.01.2017 8:06)
Ich nutze:
C-Control Pro Mega32, eigenes Board
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: