Forum: Mikrocontroller und Digitale Elektronik Datenblock aus EEPROM lesen und mit RAM Datenblock vergleichen


von Marcel B. (mcb)


Lesenswert?

Hallo,
ich habe im EEPROM einen Datenblock mit z.B. den Werten 1, 2, 3, 4, 5 
und einen Datenblock im RAM mit z.B. den Werten 1, 6, 7, 4, 8.
Meine Frage ist nun, wie ich diese beiden Datenblöcke miteinander 
vergleiche. So weit bin ich schon:
1
#include <avr/eeprom.h>
2
#ifndef EEMEM
3
#define EEMEM  __attribute__ ((section (".eeprom")))
4
#endif
5
//Datenblock im EEPROM
6
uint8_t eeprom_array[] EEMEM = {1, 2, 3, 4, 5};
7
//RAM Datenblock mit z.B. Werten 1, 6, 7, 4, 8
8
uint8_t ram_array [5];
9
//Datenblock aus dem Array einlesen
10
uint8_t read_eeprom_array [5];
11
eeprom_read_block (read_eeprom_array, eeprom_array, sizeof(read_eeprom_array));
12
//Und jetzt ram_array und read_eeprom_array vergleichen
13
//???

von Peter D. (pdiener) Benutzerseite


Lesenswert?

Das geht ganz einfach mit memcmp.
http://www.nongnu.org/avr-libc/user-manual/group__avr__string.html#ga4cd54dc9109f0d3da49d9c35e6441b61
1
if (memcmp(ram_array, read_eeprom_array, sizeof(read_eeprom_array)) == 0)
2
{
3
  // Code für Behandlung des Falls "Arrays gleich"
4
}
5
else
6
{
7
  // Code für Behandlung des Falls "Arrays nicht gleich"
8
}


Grüße,

Peter

von Marcel B. (mcb)


Lesenswert?

Okay. Vielen Dank.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.