Go Down

Topic: Estrarre e Reinserire SD (Read 9872 times) previous topic - next topic

farstar1965

Eccomi ancora.
Sto cercando di salvare orario,temperature e stato delle varie I/O di un mio circuitino su sheda SD che vorrei poter estrarre per caricare i dati su  PC e reinserire per continuare a fare datalogger.
Ho letto questo post "http://forum.arduino.cc/index.php?topic=96288.msg723315#msg723315" ma sinceramente non ci ho capito un'acca.
Non chiedetemi codice o parti di esso perchè non ne esiste le mie scarse capacità di programmazione mi fanno provare un pezzo per volta per verificare se riesco. E non so neanche se finito tutto la memoria del micro conterra tutto lo sketch con tutti i pasticci che sto facendo sono gia a 25000 byte.( scheda con glcd 128*64 SD RTC e I2C verso altro atmega328).

pablos71

#1
Nov 20, 2013, 12:53 am Last Edit: Nov 20, 2013, 01:04 am by pablos Reason: 1
Ciao...  un po vecchio il post, ma mi ricordo ancora quelle prove :)

In effetti riguardandolo ci sono 2 if annidati inutili, ne basta uno (erano dei test copia incolla), comunque il principio è:
verificare con "volume.init(&card)" (che restituisce true o false) se la scheda SD è presente o meno, se non lo è Il void sd_init()  richiama l'inizializzazione della SD usando la lib <SD.h> l'ho separata dal setup per poter essere richiamata  più volte, non è difficile.

ri-ciao

L'esperienza è il tipo di insegnante più difficile ....
Prima ti fa l'esame e poi ti spiega la lezione.

farstar1965

Il concetto e semplice  :~ il mio problema è che durante la compilazione non trova le due variabili:
file.close();
root.close();
Ora, basta dichiararle prima del setup ? a cosa servono ?
Se leggo il reference della libreria SD non le vedo. Sono orbo ?

ri bye

pablos71

#3
Nov 20, 2013, 07:15 pm Last Edit: Nov 20, 2013, 07:19 pm by pablos Reason: 1
probabilmente ti manca questo

Code: [Select]
Sd2Card card;
SdVolume volume;
SdFile root;


nelle dichiaraz. delle variabili all'inizio ... chi cerca trova http://arduino.cc/en/Tutorial/CardInfo .. qui trovi come trattare quelle var

ciao
L'esperienza è il tipo di insegnante più difficile ....
Prima ti fa l'esame e poi ti spiega la lezione.

farstar1965

Non mi dire che non ho cercato perchè, ti giuro ho cercato, eccome se ho cercato.
Ma nella vastità di internet spesso mi sembra di cercare un ago nell'oceano.
E nella vastità della mia ignoranza spesso non sò neanche cosa cercare.

Graz

pablos71

#5
Nov 21, 2013, 12:02 am Last Edit: Nov 21, 2013, 12:09 am by pablos Reason: 1
però in tutto questo fai attenzione, se estrai la scheda SD mentre in quell'istante il file è open fai un casino danneggiando il file system perdendo quindi tutto il contenuto....(il pc alla lettura troverà errori e ti chiederà di riformattarla)  un po' come quando estrai una chiavetta USB dal pc esiste la funzione di "espelli periferica usb"  proprio per assicurarsi che il pc non stia scivendo mentre la estrai.
Dovresti prevedere il blocco della scittura e la chiusura file con un pulsantino o qualcosa che ti pare più idoneo, prima di estrarla.

Ciao
L'esperienza è il tipo di insegnante più difficile ....
Prima ti fa l'esame e poi ti spiega la lezione.

leo72

Oppure un LED che tieni acceso durante gli accessi alla schedina, un pò come i vecchi floppy disk che avevano la spia luminosa sul frontalino.
Quando hai terminato le operazioni di accesso, fai un flush dei dati e chiudi i file, spengi il led così l'utente sa che eventualmente può rimuovere la schedina.

lestofante

approvo l'ìidea di leo, con una piccola aggiunta: devi prevedere una zona di memoria in cui salvare i dati nel momento in cui la scheda non è presente.

In oltre questo "buffer" devi usarlo anche se scrivi o leggi spesso dalla SD, in modo da dare tempo all'essere unamo di accorgersi del led spento e di estrarre la carta prima che parta la prossima scrittura/lettura
Guida per principianti http://playground.arduino.cc/Italiano/newbie
Unoffical Telegram group https://t.me/genuino

farstar1965

Calma calma, sto ancora studiando.
Comunque al momento uso la veriabile dell'encoder per dirgli quando puo scrivere sulla sd e quando no.
Mi piace l'idea del led, magari che si accende prima di verificare lo sw della presenza scheda, perche se estraggo la scheda proprio mentre si sta accendendo faccio il patatrac comunque.

lestofante

certo, la sfiga va prevista, se no si piange dopo  :smiley-mr-green:
Guida per principianti http://playground.arduino.cc/Italiano/newbie
Unoffical Telegram group https://t.me/genuino

farstar1965

#10
Nov 21, 2013, 03:22 pm Last Edit: Nov 21, 2013, 03:24 pm by farstar1965 Reason: 1
O.T. ( si dice cosi?) Lo diciamo a qualcuno che l'orario dei post è completamente a capocchia o è saputo?
                                  P.S. Non è completamente a capocchia noto ora è con l'ora di londra.

lestofante

di solito in questo forum si avvsa quandi si è IN topic  :smiley-mr-green:

a me l'orario è ok, controlla il fuso orario del tuo profilo
Guida per principianti http://playground.arduino.cc/Italiano/newbie
Unoffical Telegram group https://t.me/genuino

farstar1965

Il mio cervello è con l'ora di londra.
Grazie

leo72


controlla il fuso orario del tuo profilo

Quoto. E' lì che va allineato, soprattutto ai cambi di ora legale/solare, che il profilo non aggiorna in automatico.

farstar1965

Nella mia ( e non mi stancherò mai di dirlo ) totale ignoranza in programmazione,
non avendo capito praticamente nulla dal tutorial che mi avete linkato  :smiley-red:
non avendo capito niente nelle varie spiegazioni delle librerie e non avendo trovato una pagina che spiega i vari comandi
per gestire le librerie (tutti i comanti, o funzioni?) :
Questo è quello che sono riuscito a mettere in sieme.
Funziona, se il file non esiste lo crea, quando inserisco la scheda incomincia a scrivere, premendo il pulsante smette di scrivere e posso estrarre la scheda senza problemi.
Mi sembrava bello postare la soluzione ai miei problemi; la mia soluzione.

Spero sarete clementi con i commenti.
Ora continuo con le altre parti del progetto.
Grazie a tutti BYE.

Go Up