Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Problema EEPROM (Progetto Domotica Remota)

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] Problema EEPROM (Progetto Domotica Remota)

Messaggioda Foto Utentemrflower » 6 ott 2012, 3:03

Salve a tutti,
vi spiego il mio problema nella speranza che qualcuno possa aiutarmi.

Sostanzialmente, ho bisogno di salvare delle parole nella EEPROM per poi confrontarle con dei comandi che mi arrivano via UART da un modulo GSM. Queste parole sono i comandi che io ritengo validi al fine di attuare determinate operazioni. Il mio è un progetto di automazione domotica remota tramite invio di sms.
Il procedimento che ho pensato di attuare è il seguente:

1.Ricevo l'sms
2.Tramite il micro invio il comando al modulo GSM per leggere l'sms
3. Acquisisco via UART l'sms carattere per carattere e lo confronto con i comandi che io ritengo validi

Questi comandi, come detto prima, vorrei memorizzarli nella EEPROM e per fare ciò ho scritto il seguente codice:

Codice: Seleziona tutto
.eseg /* Write what follows to the EEPROM*/
.org 0x00
.db 0x4F, 0x56, 0x45, 0x4E             /* OVEN   */
.db 0x4C, 0x49, 0x47, 0x48, 0x54, 0x53 /* LIGHTS */
.db 0x43, 0x4F, 0x4F, 0x4C             /* COOL   */
.db 0x48, 0x4F, 0x54                   /* HOT    */
.db 0x52, 0x45, 0x53, 0x45, 0x54       /* RESET  */


Per quello che ho capito, questo codice, dovrebbe scrivere nella EEPROM, a partire dalla locazione 0x00, in modo susseguente, i vari caratteri che compongono le mie parole.
Per testarne il funzionamento ho scritto questo piccolo codice:

Codice: Seleziona tutto
ldi temp, 0x00;
out EEARH, temp;
out EEARL, temp;
sbi EECR, EERE;
in temp, EEDR;


che dovrebbe in pratica leggere il contenuto della prima locazione della EEPROM e conservarlo nel registro temp.
Ora, il problema è che, anche provando a caricare diverse locazioni della EEPROM, ciò che viene caricato nel registro EEDR (dove vengono conservati i dati letti e quelli da scrivere) è sempre 0xFF (tutto ciò simulando con AVR studio).

Non riesco a spiegarmi il perché, probabilmente avrò commesso qualche errore banale visto che è la prima volta che utilizzo la EEPROM.

Grazie in anticipo a chiunque volesse aiutarmi.
Avatar utente
Foto Utentemrflower
8 4
 
Messaggi: 40
Iscritto il: 12 mar 2012, 0:26

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 21 ospiti