Ich habe nun ein wenig Code geschrieben, der aber nicht so will wie ich das möchte:
Code:
; PIC auswaehlen
list p=16f628a
;---------------------------------------------------------------------------------
; Include Datei fuer PIC
#include <p16f628a.inc>
;---------------------------------------------------------------------------------
; Config Word
; Im Config Word werden Parameter gesetzt die in der *.inc Datei vordefiniert sind.
; Dort stehen alle Funktionen die Verfuegbar und aufrufbar sind
__config _MCLRE_ON & _PWRTE_OFF & _XT_OSC & _WDT_OFF
;---------------------------------------------------------------------------------
; Adressen deklarieren
; EEPROM lesen
; In diesem Beispiel wird der Wert aus der EEPROM-Adresse 0x00 benoetigt
; Dafuer wird die Adresse in das EEPROM-Adressregister geschrieben
BANKSEL EEADR ; In Bank mit Register EEADR wechseln
MOVLW 0x00 ; EEPROM-Adresse 0x00
MOVWF EEADR ; EEPROM-Adresse in Register schreiben
; Jetzt wird im EECON1-Register das EEPGD-Bit (Bit 7) geloescht
; und das RD-Bit (Bit 0) gesetzt. Damit wird der Inhalt der EEPROM
; Speicherstelle ins EEDATA-Register kopiert.
BCF EECON1, 7 ; Loeschen EEPGD-Bit
BSF EECON1, 0 ; Setzen RD-Bit
; Jetzt wird das Bitwort aus dem EEDATA-Register in das
; Arbeitregister W gelesen
MOVF EEDATA, W ; EEDATA-Register einlesen
MOVWF 0x20
end
Der Code funktioniert bis dahin wo er die Adresse im Arbeitsregister hat. Wenn ich aber dann sage das er den Inhalt in die Adress 0x20 schreiben soll, will er immer in die Adresse 0x0A0 schreiben.....
KAnn hier jemand einen Fehler ekennen???
Lesezeichen