Librairie SD Card

Bonjour a tous,

J'ai fait quelque essaie d’écriture et de lecture su card SD via les example fournis avec IDE arduino.

Ce qui m’étonne c'est le volume occuper après compilation +- 10Ko c'est énorme si je désire implanter un data-loger a mon système existant je vais saturer mon programme fais déjà +- 15Ko a sa le dataloger +- 10 Ko sans compter les variable sa vas pas le faire !!!

Je suppose que c'est les 2 librairie SPI et Sd qui prenne une place monstre !

Y a t'il d'autre solution moins volumineuse ?

Merci de vos conseille

Regardez la librairie SDFat et modifiez dans SdFatConfig.h les #define qui ne vous intéressent pas ils sont documentés directement dans le code du .h

Merci pour les infos,

A mon stade je vais avoir du mal a être capable de mettre en oeuvre cette dernière solution, pourtant bien intéressante.

Dans le Premier cas proposer par J-L-M je regarde sa de plus prés mais je crains que même cette solution soit encore trop gourmande en ressource.

Je vais sans doute opter pour un second Nano et une connexion I2C entre les 2 !

Je continue a étudier la meilleur solution :wink:

Si autre soluce je suis preneur.

Le but etant de reprendre l'heure et la date du RTC ainsi que l'etat de 4 input ON/OFF de mettre sa dans un fichier .txt ou CVS, de reprendre la carte pour lecture sur le pc si besoin !

les infos sont écrite sur la carte à chaque événement soit normalement jamais , du moins j’espère jamais!

Souvent on cherche des optimisations au mauvais endroit...

Utilisez vous la classe String par exemple? si oui, virez là et utilisez des buffer de caractères. utilisez vous sprintf? si oui changez pour bâtir votre chaîne petit à petit avec des strcat() par exemple.

avez vous du texte statique? si oui éventuellement passez le en F() (PROGMEM).

Que dit exactement le compilateur par rapport à l'espace dispo? avoir sa mémoire programme "à fond" ce n'est pas trop grave, l'important c'est que ça y tienne. Il faut faire attention à la mémoire vive aussi...

Merci J-M-L,

Je ne sais plus au juste de combien je dispose au juste je doit vérifier cette après midi.

De mémoire mon programme doit faire 15600 octets et en vive pour les variable 65% est occupé.

j'ai deja applique tes conseil il y a quelque semaine car nous avions traiter de mon problème avec le RTC DS3231 pour remplacé String par Char et aussi PROGMEM pour des if qui contenais de longue chaines de caractère a transmettre et quelque répétition qui me générer des sauts de 2% de memoire vive a chaque if ajouter.

Après tous tes conseilles, j'ai réussi a optimiser mon programme et ainsi gagner en vitesse et en taille ainsi qu'en mémoire vive.

J'ai fait un teste avec 2 nano en I2C l'un gere toute la partie passée et le second je journal des logs sa fonctionne et s'est rapide sa me donne même l'avantage de lire le contenu de la carte SD via l'USB sans que le second nano soit interrompu c'est un avantage auquel je n'avais pas pense au départ !

Mais malgré tous pour apprendre encore quelque chose je vais suivre t'es conseil !
Je vais regarder comment optimiser la librairie existante de SD fat voir si je sais gagner quelque kilo octets.

:wink: