PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] EEPROM beschreiben



Stephan7878
06.10.2005, 13:38
Hallo,

ich habe folgendes Problem mit einem PIC12F675 und MPLAB IDE:

ich möchte gerne den EEPROM beschreiben und muss dafür laut Datenblatt (zumindest der untere Teil) folgende Zeilen in den Code einbinden:

BSF STATUS,RP0 ; EEADR und EEDATA liegen in der Bank 1
MOVLW 0x10 ;
MOVWF EEADR ; Die Zelle 10h soll beschrieben werden
MOVLW 11 ;
MOVWF EEDATA ; eine 11 wollen wir schreiben
BSF EECON1,WREN ; schreiben erlauben
BCF INTCON,GIE ; alle interrups auschalten

; Die folgenden 5 Zeilen müssen genau so im Code stehen!!!

MOVLW 55h ;
MOVWF EECON2 ; schreibe 55h nach EECON2
MOVLW AAh
MOVWF EECON2 ; schreibe AAh nach EECON2
BSF EECON1, WR ; starte den Schreibzyklus
BSF INTCON,GIE ; Alle Interrupts ein

MPLAB bringt mir jetzt ne Fehlermeldung in der Zeile:

MOVLW AAh

wenn ich 0xAA eingebe, bekomme ich keine Fehlermeldung aber kann auch nicht schreiben?

Vielleicht kann mir jemand von Euch ein paar wertvolle Tips geben oder weis Abhilfe

Danke schon im voraus

Stephan

Fritzli
06.10.2005, 14:03
Hallo


wenn ich 0xAA eingebe, bekomme ich keine Fehlermeldung aber kann auch nicht schreiben?
Ist das ne Frage oder ne Feststellung? Kannst du schreiben oder weisst Du nicht ob Du schreiben kannst?

Ich wuerde sagen, dass MPLAB XXh nicht kennt, sondern nur 0xXX akzeptiert. (siehe Handbuch) Wenn aber sonst alles stimmt, sollte es eigentlich funktionieren.

Woran siehst Du, dass es nicht geklappt hat?

Gruess
Fritzli

StephanR7878
07.10.2005, 10:59
Hallo,

danke erst mal für die schnelle Antwort.

Also ich meinte damit das ich keine Fehlermeldung bekomme wenn ich

MOVLW 0xAA

eingebe, kann dann aber auch nicht auf das EEPROM schreiben.

Übrigens steht im Datenblatt das man

MOVLW AAh

eingeben soll. (Die zum EEPROM beschreiben nötige Routine mit den 5 Befehlen im EECON2 Register, Seite 49)

Kontrollieren ob das EEPROM beschrieben wird, kann ich mit dem EEPROM-Window (View-->EEPROM)

Danke

Stephan

Fritzli
07.10.2005, 14:24
Hallo

Das heisst, Du versuchst im Simulator zu schreiben?
Wenn ja, schau mal nach, ob das interne EEPROM vom MPLAB Sim unterstützt wird. Ich weiss das gerade nicht auswendig, müsste irgendwo in der Hilfe stehen...

Kannst Du es mal live, d.h. in Hardware, ausprobieren?


Gruess
Fritzli

StephanR7878
10.10.2005, 16:40
Ja im Moment kann ich noch kein Hardwaretest machen, die ist noch nicht fertig. Aber ich glaub ich hab vorerst mal ne ausreichende Lösung gefunden. Ich kann bei View-->EEPROM, Linksklick EEPROM füllen ausführen.

Aber noch ne andere Frage:

ich brauch den AD-Wandler und weis aber nicht wie ich das Ergebnis mit zehn Bit so abspeichern kann, das ich hinterher aus fünf Ergebnissen den Mittelwert bilden kann.

Gib es eine Möglichkeit, mit diesem PIC ein zehn Bit breites Ergebnis "am Stück" zu speichern. Z.b. mit <label> res <2>?

Danke

Stephan

Fritzli
14.10.2005, 21:19
Hallo

Nein das geht so nicht. Die PIC's sind 8Bit-uC's und das heisst, sie können aufs Mal nur 8Bit verarbeiten. Also um z.B. eine 16Bit (=2x8Bit) Zahl an einem anderen Ort/Register abzuspeichern, muss man zuerst das eine Byte movf/movwf etc, dann das andere.

Das ganze gilt natürlich auch für 10Bit-Zahlen. Die werden gleich wie 16Bit-Zahlen behandelt (gibt ja keine Bruchteile von Bytes)

Link zu 16-Bit-Arithemtik: http://sprut.de/electronic/pic/math/math.htm


Gruess
Fritzli