Wie könnte ich zuerst eine Zeichenfolge für das EEPROM-Schreiben übergeben und den Code wie folgt einlesen:
int main()
{
char display[30];
EEPROM_writedata(display);
LCD_senddata(0,EEPROM_print(1));//this wont work
LCD_senddata(0,display); //this works fine
return 1;
}
void EEPROM_writedata(char* name)
{
eeprom_update_block((const void *)name,(void*)1,20);
}
char* EEPROM_print(int i)
{
char* send;
eeprom_read_block((void*)send,(const void*)1,10);
return send;
}
LCD_sendata(int, char*)
{
//codes for LCD initialize upto print
}
Ich kann hier viele Fehler machen, weil ich weniger Wissen habe. Bitte geben Sie an, ob Sie sie erhalten. Mein Problem besteht hauptsächlich darin, eine Zeichenfolge an EEPROM_write () und von EEPROM_print () an main zu übergeben. Jede Hilfe ist willkommen.
Variablen, die im EEPROM von AVRs in C gespeichert sind, müssen in den .eeprom
Abschnitt gestellt werden.
(Von http://www.nongnu.org/avr-libc/user-manual/group_ avr _eeprom.html )
#define EEMEM __attribute__((section(".eeprom")))
void eeprom_write_block (const void *__src, void *__dst, size_t __n)
Um eine Variable im EEPROM zu speichern und darauf zuzugreifen, möchten Sie etwas wie:
char EEMEM myVar;
void writeMyVal(char c)
{
eeprom_write_block(&c, &myVar, sizeof(myVar));
}
void readMyVal(char *c)
{
eeprom_read_block((void*)c, &myVar, sizeof(myVar));
}
Hier ist eine Anleitung.
Vielen Dank an Sie alle für Ihre großartige Hilfe. Eigentlich habe ich meine Lösung von:
http://mainframe.cx/~ckuethe/avr-c-tutorial/lesson11.c Ich habe den Code wie folgt bearbeitet
int main()
{
char display[30],write[]="write something inside EEPROM";
EEPROM_writedata(&write); //initially, EEPROM_writedata(write);
LCD_senddata(0,EEPROM_print(1));
LCD_senddata(0,&display); //initially, LCD_senddata(0,display);
return 1;
}
char *send
der nicht lokal für die Methode ist. Lesen Sie die Frage und Antwort hier: stackoverflow.com/questions/6441218/…
Majenko
Bishal Paudel
Toby Jaffey
Bishal Paudel
Majenko
Bishal Paudel
Bishal Paudel
Majenko