Go Down

Topic: Scrittura variabile numerica su Ram RTC (Read 654 times) previous topic - next topic

-Alo-

Ciao a tutti,
sto cercando da giorni di salvare un valore numerico nella ram dell'RTC DS1307 e poi successivamente recuperarlo utilizzandolo in una nuova variabile intera ma fin'ora senza successo.
Come base sono partito dall'esempio contenuto nella libreria RTC.lib dal quale ho tolto alcune parti per me superflue ed ho ottenuto:
Code: [Select]

// Example of using the non-volatile RAM storage on the DS1307.
// You can write up to 56 bytes from address 0 to 55.
// Data will be persisted as long as the DS1307 has battery power.

#include <Wire.h>
#include "RTClib.h"


RTC_DS1307 rtc;


void setup () {


  Serial.begin(57600);
  rtc.begin();
  int valore;



  Serial.println("Writing NVRAM values.");
  // Example writing one byte at a time:
  rtc.writenvram(0, 0xFE);

 
  // Read bytes from non-volatile RAM storage.
  Serial.println("Reading NVRAM values:");
  // Example reading one byte at a time.
  Serial.println(rtc.readnvram(0), DEC);

  valore=(rtc.readnvram(0), DEC);
  Serial.println(valore);
 
}

void loop () {
  // Do nothing in the loop.
}


Io ho la necessità che nella variabile "valore" venga memorizzato il numero che ho precedentemente scritto (ossia in questo caso il numero FE in forma esacedimale). Il problema è che mentre il comando seguente restituisce sempre il valore corretto
Code: [Select]
Serial.println(rtc.readnvram(0), DEC);

il comando successivo fornisce sempre il valore 10...
Code: [Select]
valore=(rtc.readnvram(0), DEC);
Serial.println(valore);


Dov'è il problema ?
Grazie a tutti in anticipo per l'aiuto.

gpb01

#1
Feb 22, 2016, 02:06 pm Last Edit: Feb 22, 2016, 02:09 pm by gpb01
Stai mischiando le sintassi della Serial.print() con quella dell'assegnazione di un valore, dove, il formato DEC di stampa, NON ha nulla a che vedere !

valore = rtc.readnvram(0);

... e null'altro.

Per capire, vai a studiare la sintassi della Serial.print() ... ::)

Guglielmo
Search is Your friend ... or I am Your enemy !

-Alo-

Grazie della velocissima risposta.
Purtroppo ho iniziato da poco con arduino e le mie basi sono ancora poco solide.
Grazie ancora

gpb01

#3
Feb 22, 2016, 02:31 pm Last Edit: Feb 22, 2016, 02:32 pm by gpb01
Purtroppo ho iniziato da poco con arduino e le mie basi sono ancora poco solide.
Potresti cominciare con QUESTO  ;)

Guglielmo
Search is Your friend ... or I am Your enemy !

Go Up