Hallo, ich versuche verzweifelt ein Byte in das EEPROM zu schreiben und anschließend wieder auszulesen. Jedoch scheint das Schreiben einfach nicht zu funktionieren, denn ich lese immer nur 0xFF egal was ich zu vor hineinschreibe. Auch, wenn ich im MPLAB IDE 3.60 das "EE Data Memory" Fenster öffne und alle EEPROM Werte auslese sind alle mit dem gleichen Wert 0xFF belegt. Ich habe jetzt mehrmals sehr genau die Dokumentation dazu gelesen und kann beim besten willen meinen Fehler nicht finden. Erkennt jemand was ich falsch mache? Ich nutze MPLAB 3.6 und MPASM.
1 | ; CONFIG1 |
2 | __CONFIG _CONFIG1, |
3 | _FEXTOSC_OFF & |
4 | _RSTOSC_HFINT32 & |
5 | _CLKOUTEN_OFF & |
6 | _CSWEN_ON & |
7 | _FCMEN_OFF
|
8 | |
9 | ; CONFIG2 |
10 | __CONFIG _CONFIG2, |
11 | _MCLRE_OFF & |
12 | _PWRTE_ON & |
13 | _WDTE_OFF & |
14 | _LPBOREN_OFF & |
15 | _BOREN_OFF & |
16 | _BORV_HIGH & |
17 | _PPS1WAY_OFF & |
18 | _STVREN_ON & |
19 | _DEBUG_OFF
|
20 | |
21 | ; CONFIG3 |
22 | __CONFIG _CONFIG3, |
23 | _WRT_OFF & |
24 | _LVP_OFF
|
25 | |
26 | ; CONFIG4 |
27 | __CONFIG _CONFIG4, |
28 | _CP_OFF & |
29 | _CPD_OFF
|
30 | |
31 | code 0x0 |
32 | |
33 | ; Write |
34 | banksel NVMCON1 |
35 | bsf NVMCON1, NVMREGS |
36 | bsf NVMCON1, WREN |
37 | |
38 | banksel NVMADRH |
39 | movlw H'70' |
40 | movwf NVMADRH |
41 | |
42 | banksel NVMADRL |
43 | movlw H'00' |
44 | movwf NVMADRL |
45 | |
46 | banksel NVMDATL |
47 | movlw H'44' |
48 | movwf NVMDATL |
49 | |
50 | banksel NVMCON2 |
51 | |
52 | movlw H'55' |
53 | movwf NVMCON2 |
54 | |
55 | movlw H'AA' |
56 | movwf NVMCON2 |
57 | |
58 | banksel NVMCON1 |
59 | bsf NVMCON1, WR |
60 | |
61 | nop ; Kann man eig. beim PIC16F18344 weglassen. |
62 | nop ; |
63 | |
64 | btfsc NVMCON1, WR |
65 | goto $-2 |
66 | |
67 | ; Read |
68 | banksel NVMCON1 |
69 | bsf NVMCON1, NVMREGS |
70 | bcf NVMCON1, WREN |
71 | |
72 | banksel NVMADRL |
73 | movlw H'00' |
74 | movwf NVMADRL |
75 | |
76 | banksel NVMADRH |
77 | movlw H'70' |
78 | movwf NVMADRH |
79 | |
80 | banksel NVMCON1 |
81 | bsf NVMCON1, RD |
82 | btfsc NVMCON1, RD |
83 | goto $-2 |
84 | |
85 | banksel NVMDATL |
86 | movf NVMDATL, W |
87 | |
88 | goto $ |