Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Problemi con scrittura su EEPROM PIC 16F876A

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] Problemi con scrittura su EEPROM PIC 16F876A

Messaggioda Foto Utentepablitomassa82 » 18 ott 2013, 11:43

Ciao,
sto spippolando con il PIC 16F876A, in particolare sono alle prese con la memoria EEPROM interna.

utilizzo il seguente semplicissimo programma (che non funziona!)

Codice: Seleziona tutto
#include <PIC.h>

#define _XTAL_FREQ 20000000

__CONFIG(FOSC_HS & WDTE_OFF & PWRTE_OFF & BOREN_OFF & LVP_OFF & CPD_OFF & WRT_OFF & DEBUG_OFF & CP_OFF);
__EEPROM_DATA(0,1,2,3,4,5,6,7);

void main(void)
{
   INTCON = 0b00000000;
   eeprom_write(10,80);
   
   while(1)
   {
   }   

}
   


Il fatto è che nella EEPROM vengono scritti solamente i dati 0,1,2,3,4,5,6,7, mentre viene ignorata la scrittura di 80 nell'indirizzo 10. In pratica sembra non funzionare eeprom_write. Qualcuno ha un idea?
grazie, saluti
Paolo
Avatar utente
Foto Utentepablitomassa82
10 2
 
Messaggi: 39
Iscritto il: 31 mar 2010, 10:40

0
voti

[2] Re: Problemi con scrittura su EEPROM PIC 16F876A

Messaggioda Foto UtenteMarcRider » 19 ott 2013, 10:37

PIC.h non è presente tra le mie librerie.

eeprom_write(); cos'è che fa? l'hai scritta tu?
Avatar utente
Foto UtenteMarcRider
5 1 4
New entry
New entry
 
Messaggi: 53
Iscritto il: 16 feb 2012, 17:37

0
voti

[3] Re: Problemi con scrittura su EEPROM PIC 16F876A

Messaggioda Foto UtenteMarcRider » 19 ott 2013, 11:30

siccome la cosa interessa anche a me, e non ho mai scritto sulla EEprom, vorrei provarci.

Ho trovato questo post:
https://www.microchip.com/forums/m722643-print.aspx

Io ho una libreria EEP.h ma non sono definite quelle funzioni lì descritte.
Uso il c18 come compilatore.

Sto cercando se esiste una libreria che faccia il lavoro sporco al posto mio.
Avatar utente
Foto UtenteMarcRider
5 1 4
New entry
New entry
 
Messaggi: 53
Iscritto il: 16 feb 2012, 17:37

0
voti

[4] Re: Problemi con scrittura su EEPROM PIC 16F876A

Messaggioda Foto UtenteMarcRider » 19 ott 2013, 12:44

Dunque, PIC.h non la trovavo perché è HiTech C.
EEP.h, guardando la definizione avevo le funzioni taggate come commento :shock:
Ho creato un altro progetto ed ho usato la versione più aggiornata di C18, e sono comparse le famose funzioni.
Avatar utente
Foto UtenteMarcRider
5 1 4
New entry
New entry
 
Messaggi: 53
Iscritto il: 16 feb 2012, 17:37

1
voti

[5] Re: Problemi con scrittura su EEPROM PIC 16F876A

Messaggioda Foto UtentePaolino » 20 ott 2013, 8:45

Se usi XC8 (derivato da Hi-Tech), la direttiva che scrive i dati in EEPROM all'avvio prevede un massimo di 8 byte alla volta. Ti suggerisco di fare così:

Codice: Seleziona tutto
_EEPROM_DATA(0, 1, 2, 3, 4, 5, 6, 7);          /* dati da 0x00 a 0x07 */
_EEPROM_DATA(8, 9, 10, 11, 12, 13, 14, 15);    /* dati da 0x08 a 0x0F */
_EEPROM_DATA(16, 17, 18, 19, 20, 21, 22, 23);  /* dati da 0x10 a 0x17 */
_EEPROM_DATA(24, 25, 26, 27, 28, 29, 30, 31);  /* dati da 0x18 a 0x1F */


Ciao.

Paolo.
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it
Avatar utente
Foto UtentePaolino
32,6k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4226
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

0
voti

[6] Re: Problemi con scrittura su EEPROM PIC 16F876A

Messaggioda Foto Utentepablitomassa82 » 20 ott 2013, 16:25

forse non hai la libreria PIC.h perché usi il compilatore C18, io utilizzo il pic-c della hi-tec
Avatar utente
Foto Utentepablitomassa82
10 2
 
Messaggi: 39
Iscritto il: 31 mar 2010, 10:40

0
voti

[7] Re: Problemi con scrittura su EEPROM PIC 16F876A

Messaggioda Foto Utentepablitomassa82 » 20 ott 2013, 16:27

Paolino ha scritto:Se usi XC8 (derivato da Hi-Tech), la direttiva che scrive i dati in EEPROM all'avvio prevede un massimo di 8 byte alla volta. Ti suggerisco di fare così:

Codice: Seleziona tutto
_EEPROM_DATA(0, 1, 2, 3, 4, 5, 6, 7);          /* dati da 0x00 a 0x07 */
_EEPROM_DATA(8, 9, 10, 11, 12, 13, 14, 15);    /* dati da 0x08 a 0x0F */
_EEPROM_DATA(16, 17, 18, 19, 20, 21, 22, 23);  /* dati da 0x10 a 0x17 */
_EEPROM_DATA(24, 25, 26, 27, 28, 29, 30, 31);  /* dati da 0x18 a 0x1F */


Ciao.

Paolo.


Ma la scrittura all'avvio funziona, è dopo nel main che non riesce a scrivere, ....credo però di non essere l'unico ad avere questo problema.
Avatar utente
Foto Utentepablitomassa82
10 2
 
Messaggi: 39
Iscritto il: 31 mar 2010, 10:40

1
voti

[8] Re: Problemi con scrittura su EEPROM PIC 16F876A

Messaggioda Foto UtentePaolino » 20 ott 2013, 16:29

Non puoi passare a XC8?
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it
Avatar utente
Foto UtentePaolino
32,6k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4226
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

1
voti

[9] Re: Problemi con scrittura su EEPROM PIC 16F876A

Messaggioda Foto UtentePaolino » 20 ott 2013, 16:32

Oppure scrivi le tue funzioni di accesso alla EEPROM. Leggi questo articolo, magari trovi spunto.

Ciao.

Paolo.
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it
Avatar utente
Foto UtentePaolino
32,6k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4226
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)


Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 19 ospiti