Versuche PIC 16F883 EEProm zu schreiben, obwohl ich den Code von MICROCHIP anwende (aus dem DATA Sheet)hab ich keinen Erfolg. Es wird nicht geschrieben. Kann mir jemand helfen, mein Code als Anhang. Vielen Dank Willi
> EE_16F883 > ;lesen 16F883 > BANKSEL EEADR ; > MOVLW DATA_EE_ADDR ; > MOVWF EEADR ;Data Memory Address to write > MOVLW DATA_EE_DATA ; > MOVWF EEDAT ;Data Memory Value to write Sollte das wirklich irgendwo so stehen? Mit "MOVLW" wird ja die Adresse der Variablen "DATA_EE_ADDR" in das WREG geladen und nicht der Wert. Ich hätte hier eher "MOVF DATA_EE_ADDR,W" erwartet.
Hallo Dieter, ja das war ein Fehler, als Anhang das berichtigte Listing aber es klappt leider nicht. vielen Dank Willi
> BSF EECON1, WR ;Set WR bit to begin write > btfss EECON1,WR > goto EE1 ;wiederholt den Schreibcyklus > ; wenn Schreib-Bit nichr zurückgesetzt ist Das habe ich auch nicht in der Form in Erinnerung (mach schon ein paar Jahre nix mehr mit PIC16). So sollte das eher funktionieren: bsf EECON1,WR ;Schreibvorgang starten btfsc EECON1,WR ;Schreiben fertig? goto $-1 ;nein, warten
Der Schreibvorgang ist bei sprut genau beschrieben, damit geht es auch. http://sprut.de/electronic/pic/grund/eeprom.htm
Hallo Dieter, vielen Dank hab deinen Vorschlag umgesetzt, aber die Zelle(1) wird nicht verändert. Hab die Zelle mit dem "Leseprogramm ausgelesen. Auf auf dem EE-Monitor meines PiCkit2 auch keine Veränderung. Hab die veränderte Datei nochmals angehägt. Vielen Dank Willi
Hallo usuru, bei mir ist der Wurm drin. Auch mit Sprut und 16F876 schreibt er nicht, sondern bleibt irgenwo hängen. Werd ich morgen mal schauen. Vielen Dank Willi
EEADR liegt in Bank 2 und dein Wert den du schreiben willst in Bank0. Da du aber am Anfang der Schreibroutine auf Bank2 stellst nimmt er natürlich auch dein Datenwert aus Bank2 (was aber falsch ist). Du musst also schon darauf achten, in welchem Speicherbereich deine Variablen und Register liegen. Weiter hab ich erst mal nicht geschaut, da dieser Fehler sicher noch öfter auftritt.. Gruß Sven
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.