PIC18F452 Eeprom
Nya'ri Viktor
office at flexelec.hu
Tue Jul 5 19:37:24 CEST 2005
Hi, Lista!
PIC18F452-ben a belső Eepromot akarom olvasni (előtte égetéskor fel van
töltve), de mindig 0x00 adatot kapok vissza. Mire kell még odafigyelni,
amiért nem megy? Ha programból akarom irni, azután is 0x00-t olvasok vissza.
NOWRTD és NOCPD van beállítva.
Mit kefélek el?
CCS C-ben:
---------------------------------------------------------------
#separate
int read_int_eeprom(int int_eeprom_address) //belso eeprom kiolvaso
fv. (18Fxx2)
{
int int_eeprom_data;
eeadr = int_eeprom_address; //cim_pointer beallitas
eepgd = 0; //16F87x-nel es 18Fxxx-nel jeloli, hogy eeprom
hozzaferes
cfgs = 0; //18Fxxx-nel eeprom adat hozzaferes
rd=1; //Read Control bit; olvasas indul
while (rd) {}
int_eeprom_data = eedata; //adat kiolvasas eeprombol
return (int_eeprom_data); //visszateres az adattal
}
---------------------------------------------------------------
Compiler ezt forditja belole:
.................... eeadr = int_eeprom_address;
1E48: MOVFF 268,FA9
.................... eepgd = 0; 1E4C: BCF FA6.7
.................... cfgs = 0; 1E4E: BCF FA6.6
.................... rd=1; 1E50: BSF FA6.0
.................... delay_cycles(10);
1E52: MOVLW 03
1E54: MOVWF 00
1E56: DECFSZ 00,F
1E58: BRA 1E56
.................... while (rd) {}
1E5A: BTFSS FA6.0
1E5C: BRA 1E60
1E5E: BRA 1E5A
.................... int_eeprom_data = eedata; 1E60: MOVFF FA8,269
.................... return (int_eeprom_data);
1E68: MOVLB 2
1E6A: MOVFF 269,01
.................... }
1E6E: MOVLB 0
1E70: GOTO 2AD0 (RETURN)
---------------------------------------------------------------
Viktor
More information about the Elektro
mailing list