Forum: Mikrocontroller und Digitale Elektronik PIC18F4525 FLASH_ERASE()


von SPI (Gast)


Lesenswert?

Hallo zusammen

Ich bin fast am Verzweifeln, denn ich versuche bei einem PIC18F4525 in 
den FLASH Speicher zu schreiben, lesen und löschen. Leider funktioniert 
bis jetzt nur die Lesefunktion.

Zum Compiler: Hi-Tech PIC18
Programm: MPBLAB
Simulation: Proteus

DER CODEPROTECTION ist im SFR ausgeschaltet!

Ich habe mal ganz banal die Funktion "flasherrase()" gemäss dem 
Datenblatt nachgemacht und wollte die Signale mit der Simulation 
beobachten.

So sieht die Funktion aus:

void flasherrase()
{
          EECON1=0;
          TBLPTR=0x100;
          EECON1bits.EEPGD = 1;      // Point to Flash memory
          EECON1bits.CFGS = 0;       // Acess Flash/EPROM
          EECON1bits.WREN = 1;       // Enable writes
          EECON1bits.FREE = 1;       // Enable Row Erase operation
          INTCONbits.GIE = 0;        // Disable interrupt
          EECON2 = 0x55;             // Required
          EECON2 = 0xAA;             // Required
          EECON1bits.WR = 1;         // Set WR bit to begin write
          INTCONbits.GIE = 1;        // Enable interrupt
}

Wenn ich nun die Signale beobachte, fällt mir auf, dass das WR Bit nicht 
gesetzt wird und der Speicher bleibt unverändert.
Sobald ich in den EEPROM Speicher schreiben will (EEPGD=0) wird das Bit 
korrekt gesetzt und anschliessend automatisch gelöscht.

Hat jemand eine Idee, denn auch im Netz bin ich nicht wirklich fündig 
geworden. ;-((


Herzlichen Dank für Ihre Antworten

von Sunny (Gast)


Lesenswert?

Wie kannst du sehen ob da was gesetzt wird oder nicht?
Das WR Bit ist intern und von aussen nicht abzulesen.

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.