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