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

Re: IDE Version 1.98 Kategorie: Programmierung C (von Manfred - 5.01.2009 22:43)
Als Antwort auf Re: IDE Version 1.98 von PeterS - 5.01.2009 8:17
Ich nutze:
C-Control Pro Mega128, CC-Pro 128 Application Board, Pro-Bot128
> > > Hallo PeterS,
> > >
> > > hier wie angekündigt einige Probleme mit der Version 1.98
> > > 1. Der Editor speichert den rechten Rand nicht
> > > 2. Die Suchfunktion im Editor übernimmt nicht das Wort am Cursor
> > > 3.
> > > Die folgende Funktion aus LCD_lib ohne die auskommentierten Zeilen
> > > -----------------------------------------------------------------------------------
> > > void LCD_WriteText(char text[])
> > > {
> > >     int i;
> > >
> > > //    char text1[256];
> > > //    Str_Copy(text1,text,0);
> > >
> > >     i=0;
> > >     while(text[i]) LCD_WriteChar(text[i++]);
> > > //    while(text1[i]) LCD_WriteChar(text1[i++]);
> > > }
> > > -----------------------------------------------------------------------
> > > ergibt die Fehlermeldung während der Programm-Laufzeit:
> > >     Array Index zu gross bei Adresse 25725 in Thread 0
> > >     Zeit 1020 ms
> > >     Interpreter gestoppt
> > >
> > > Der Fehler tritt auf ohne und mit eingebundenem Assembler-Programm.
> > > Die auskommentierten Zeilen sind ein "Workaround".
> > > 4. Auch mit dem Workaround ist die Anzeige auf meinem LCD-Display 4*20 noch korrupt.
> > >     Da bin ich noch auf der Suche.
> > >
> > > Viele Grüsse und weiter so mit der Entwicklung der IDE
> > > Manfred
> >
> > Nachtrag zu gestern:
> > Weitere Fehlersuche ergab, dass die interne Funktion Str_Copy manchmal fehlerhaft arbeitet.
> > Ich habe den Eindruck, dass die Probleme bei mir im Zusammenhang mit Zeigern auftreten.
> > Warte jetzt auf eine weitere Beta.
> > Manfred
> >
>
> Hmmm. Kann ich nicht bestätigen. Irgendein kleines Programm, das das demonstriert?
>
> Gruss Peter

Hallo Peter,

hier ein kleines Programm das glaube ich die Probleme zeigt.
Läuft mit IDE 1.71.
Wird abgebrochen bei IDE 1.98 nach Eingabe eines Zeichens
über die 2. Serielle Schnittstelle
//---------------------------------------------
// test2.cc             Schz 5.1.2009

char Text00[256];
word Zeichen;           // von RS232 gelesenes Zeichen
byte Snr;               // Nummer der seriellen Schnittstelle

//------------------ Zeichen an Text anhängen ---------------------

void AppendChar(char text[],char c)
{
  word len;
  len=Str_Len(text);    // Berechne Länge, bei IDE 1.98 wirf "len" zu Null berechnet
  text[len]=c;          // Hänge Zeichen an
  text[len+1]=0;        // Terminiere String
}

void Ausgabe(void)
{
  AppendChar(Text00,Zeichen);
  Msg_WriteText(Text00);
  Msg_WriteChar(13);
}

void main(void)
{
  Snr=1;                            // 2. Schnittstelle
  Text00="";
  Zeichen=0x100;
  Serial_Init(Snr,SR_8BIT|SR_1STOP|SR_NO_PAR,SR_BD19200);
  while(Zeichen!=0x1B)                    // Abbruch mit ESC
  {
    Zeichen=Serial_ReadExt(Snr);    // Zeichen von der RS232 Schnittstelle
    if (Zeichen != 0x100)
      Ausgabe();
  }                                    // while(true)
}                                       // Ende main

Ein ähnliches Problem besteht auch bei der Funktion LCD_WriteText.
(Operation mit Zeigern)

Gruss Manfred


    Antwort schreiben


Antworten:

Re: IDE Version 1.98 (von Manfred - 8.01.2009 21:31)
    Re: IDE Version 1.98 (von Manfred - 9.01.2009 15:27)
        Re: IDE Version 1.98 (von PeterS - 11.01.2009 13:08)
        Re: IDE Version 1.98 (von PeterS - 11.01.2009 13:06)