Hallo zusammen, gibt es eine C-Library(schreiben, lesen, char, int, float) für den internen EEPROM des PIC18F2455? Danke schon mal!
Hallo Noppes, danach habe ich vor ein paar Tagen auch geschaut, konnte aber auf Anhieb nichts finden. In der library documentation vom C18 steht dazu auch nichts. Ich hab mir die für meine Anwendung benötigten Funktionen dann selbst geschrieben, ist erstaunlich wenig Aufwand. Da gibt es im Netz bestimmt schon Leute, die sich die "Mühe" gemacht haben und da guten Code produziert haben. Falls du was findest würd ich mich freuen, wenn du es hier postest. Schöne Grüße, Alex
Folgendes Steht imho im Datenblatt oder AppNote oder so und so funktionierts bei mir auch:
1 | void EEPROM_WRITE(char data, char adress) |
2 | {
|
3 | EECON1bits.EEPGD = 0; /* WRITE step #1 */ |
4 | EECON1bits.WREN = 1; /* WRITE step #2 */ |
5 | EEADR = adress; /* WRITE step #3 */ |
6 | EEDATA = data; /* WRITE step #4 */ |
7 | EECON2 = 0x55; /* WRITE step #5 */ |
8 | EECON2 = 0xAA; /* WRITE step #6 */ |
9 | EECON1bits.WR = 1; /* WRITE step #7 */ |
10 | while(!PIR2bits.EEIF); /* WRITE step #8 */ |
11 | PIR2bits.EEIF = 0; /* WRITE step #9 */ |
12 | }
|
13 | |
14 | |
15 | char EEPROM_READ(char adress) |
16 | {
|
17 | EECON1bits.EEPGD = 0; /* READ step #1 */ |
18 | EEADR = adress; /* READ step #2 */ |
19 | EECON1bits.RD = 1; /* READ step #3 */ |
20 | return EEDATA; /* READ step #4 */ |
21 | }
|
Gruß Dr.Seltsam
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.