Programació en C del PIC 16F690 amb PICkit 2

Referència Trucs Perifèrics   Recursos CITCEA
Tutorial Exemples Projectes   Inici

Lectura de la memòria de programa

En el nostre programa, a més de la memòria de dades i la memòria EEPROM, també podem fer servir la memòria de programa per guardar dades. A la memòria de programa no hi podrem escriure des del microcontrolador, per tant només és útil per aquells valors constants que sempre són els mateixos. La memòria de programa conserva el seu contingut quan es perd l'alimentació elèctrica.

Podem provar la la lectura de la memòria de programa amb l'exemple MP.

Per llegir el contingut d'una adreça de la memòria de programa cal posar els 8 bits inferiors de l'adreça al registre EEADR i els 5 bits superiors al registre EEADR. Després cal activar el bit EEPGD per indicar que treballem amb la memòria de programa i activar el bit RD per demanar que es faci la lectura. Un cop activat RD cal esperar dos cicles de programa i després el contingut demanat estarà a EEDAT (els 8 bits inferiors) i a EEDATH (els 6 superiors), d'on el podrem copiar. La funció següent llegeix l'adreça de la memòria de programa que se li indica com a paràmetre i retorna el valor llegit.

unsigned char llegir_MemProg(unsigned short adre) {
						// Llegeix el contingut de la memòria de programa
						// a la posició indicada per l'adreça
	EEADRH = adre/256;			// Part més significativa de l'adreça que volem llegir
	EEADR = adre%256;			// Part menys significativa de l'adreça que volem llegir
	EECON1bits.EEPGD = 1;			// Seleccionem memòria de programa i no EEPROM
	EECON1bits.RD = 1;			// Activa la lectura
	_delay(5);				// Donem temps a fer la lectura
	return EEDAT;				// Llegeix i retorna el resultat
}

 

 

Licencia de Creative Commons
Esta obra de Oriol Boix está licenciada bajo una licencia no importada Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0.