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

read EEPROM bzw. Msg_Write.....() Kategorie: Pro-Bot128 (von Hans - 5.05.2011 16:29)
Ich nutze:
Pro-Bot128
Hallo,
ich habe ein Problem beim Lesen des EEPROM bzw. beim Schreiben des output mit
Msg_Write..().  Es scheint so, dass sich die Msg_Write..() irgendwie verschlucken.
Hier in dem Beispiel beendet der Interpreter seine Arbeit. Aber es kommt auch vor,
dass er hängen bleibt.

Kann da jemand helfen ?

    Gruss
    Hans

/*
   Test EEPROM:
   -- Schreiben und lesen in einem Rutsch geht fehlerfrei:

   Interpreter gestartet - 4kb RAM


0000 : 0 : 1
0004 : 2 : 3
0008 : 4 : 5
000C : 6 : 7
0010 : 8 : 9
0014 : 10 : 11
0018 : 12 : 13
001C : 14 : 15
0020 : 16 : 17
0024 : 18 : 19
0028 : 20 : 21
002C : 22 : 23
0030 : 24 : 25
0034 : 26 : 27
0038 : 28 : 29

Zeit: 60ms
Interpreter gestoppt
ÿ ÿ

   -- Wenn ich dann aber in einem 2. Anlauf nur lesen will
      - write_EEPROM() ist auskommentiert - erhalte ich folgenden
      Output:
Interpreter gestartet - 4kb RAM


0000 : 0 : 1
0004 : 2 :: 21                  // hier gehts schief !  der Rest stimmt wieder.
002C : 22 : 23
0030 : 24 : 25
0034 : 26 : 27
0038 : 28 : 29

Zeit: 20ms
Interpreter gestoppt
ÿ ÿ

 */

#define FIN 15

word data[32] = {0,  1,
                 2,  3,
                 4,  5,
                 6,  7,
                 8,  9,
                10, 11,
                12, 13,
                14, 15,
                16, 17,
                18, 19,
                20, 21,
                22, 23,
                24, 25,
                26, 27,
                28, 29};

void main(void)
{
  Msg_WriteChar(13);
  write_EEPROM();

  Msg_WriteChar(13);
  read_EEPROM();
}

// //////////////////////
void write_EEPROM(void)
{
  int i, j;
  word n;

  n = 0;

  for (i=0; i   {
    EEPROM_WriteWord(n, data[n/2]);
    n = n + 2;
    EEPROM_WriteWord(n, data[n/2]);
    n = n + 2;
  }
}

//  ////////////////////////
void read_EEPROM(void)
{
  int j;
  word n, data1, data2;
  n=0;

  for(j=0; j   {
    data1 = EEPROM_ReadWord(n);
    n = n + 2;
    data2 = EEPROM_ReadWord(n);
    Ausgabe(n-2, data1, data2);
    n = n + 2;
  }
}

//  ///////////////////////////////////////////
void Ausgabe(word adr, word data1, word data2)
{
    Msg_WriteHex(adr);
    Msg_WriteText(" : ");
    Msg_WriteWord(data1);
    Msg_WriteText(" : ");
    Msg_WriteWord(data2);
    Msg_WriteChar(13);
}


    Antwort schreiben


Antworten:

Re: read EEPROM bzw. Msg_Write.....() (von Torsten - 7.05.2011 20:15)
    Re: read EEPROM bzw. Msg_Write.....() (von Hans - 8.05.2011 13:33)
        Re: read EEPROM bzw. Msg_Write.....() (von Torsten - 14.05.2011 18:39)