INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
handle read-write dir-files with tinyFat
28.05.2014, 19:35
Beitrag #1
handle read-write dir-files with tinyFat
Hallo Leute
Ich habe ein kleines problemchen heraus zu finden, wie ich meinen Sketch aufbauen muss damit ich auch die Files in den Verzeichnissen auf der SD-Card anfassen kann. Dazu kommt das ich kein Coder in dem Sinne bin, sondern nur ein Bastler der ein Arduino Mega2560 mit 3,2" TFT in die Finger bekommen hat.

Ich benutze die Sachen von Henning Karlsen (UTFT_tinyFat, tinyFat). Die funktionieren für das "root" Verzeichnis der SD-Card prima, ... sobald man dahinter gekommen ist wie das alles im Sketch Maschiert...

Ein Beispiel wie ich auch mit Verzeichnissen umgehen kann gibt es bei der tinyFat leider nicht. Google denkt auch ich bin voll der Profi Coder, daher möchte ich jetzt mal im Profi Forum meine Fragen stellen. Bisher gings ganz gut allein mit google ... aber irgendwann muss man es ja genauer wissen.

=> findFirstFile() findNextFile() ... = Sacht mir gar nichts!
=> file.findNextFile(WAS HIER REIN SOLL) = Kein Plan! Geht das Überhaupt so?

Status:
Ich habe bereits 23 Files vom Typ image.raw und 17 Files vom Typ FILES.TXT in der "root" der SD-CARD liegen.
Ich kann auch mit den 17 FILES.TXT weiter arbeiten d.h. neue Werte eingeben und dann wieder auf SD-CARD Speichern. Die Werte wieder einlesen nach Stromausfall oder RESET funktioniert auch Prima.

Gelesen habe ich das angeblich 0-511 Files (bytes) in die "root" der SD-CARD abgelegt werden könnte. Das Limit gilt aber nicht für Verzeichnisse. Da ich Probleme damit habe mehr als 17 FILES.TXT in der "root" der SD-CARD zu Händeln ...

Bisher bekomme ich seltsame Ergebnisse, sobald ich das 18. File gespeichert habe bekommen die weiteren Files und auch alle dahinter liegenden bis runter zum 18. File den gleichen Wert der zuletzt im Buffer war. Obwohl diese garnicht geöffnet werden oder mit in der Funktion stehen!
Ergo == File 32 bekommt z.b. den Wert 25 und wird gespeichert! Soweit prima, aber dann stehen in allen Files ab File 18 der Wert 25 auch im 40. oder 50. File ... wondering ...

Meine Lösung fü+r das "root" Verzeichnis die ich mir aus den google Ergebnissen und den Zahlreichen Beispiel Sketches zusammen gebastelt hab seht Ihr hier:
Code:
//[#SSS]#####################################
//****************************** -SAVE STYLE SETTINGS
//##########################################
void save_STYLE(){
//---------------------------------------------------------- -open File
file.delFile("STYLE.TXT");
file.create("STYLE.TXT");
file.openFile("STYLE.TXT", FILEMODE_TEXT_WRITE);
//-------------------------------- -write Data  (z.b. int values 1,2,3 or 4)
itoa(STYLE, itoa_write_buffer, 10);
file.writeLn(itoa_write_buffer);
file.closeFile();
//---------------------------------------------------------------------
In Verschiedenen Funktionen werden so einige Files mit Informatioenen bezüglich gewisser Einstellungen gespeichert!
}

//[#LDSS]#####################################
//******************************* -LOAD STYLE SETTINGS
//##########################################
void LoadSetings(){
file.openFile("STYLE.TXT", FILEMODE_TEXT_READ);
//---------------------------------- -read Data (int values 1,2,3 or 4 etc.)
file.readLn(atoi_read_buffer, 1);
STYLE = atoi(atoi_read_buffer);
file.closeFile();
//---------------------------------------------------------------------
So lese ich alle Einstellungen wieder in die entsprechenden Integer ein.
}
Funktioniert prima bis ich das 18. File Speichern möchte ... Limits Überschritten?

Jetzt will ich ja, was auch übersichtlicher wäre meine Files in Verzeichnisse aufteilen damit auch auf der SD-CARD strucktur herscht. Wie sieht jetzt dieser Code im Sketch genau aus wo ich dieses "findFirstFile() findNextFile()" passend verwenden kann?

Viel Dank für Eure Aufmerksamkeit.

gruß
ArduTux
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.05.2014, 10:49
Beitrag #2
RE: handle read-write dir-files with tinyFat
Hallo ArduTux,

Zitat:Ein Beispiel wie ich auch mit Verzeichnissen umgehen kann gibt es bei der tinyFat leider nicht.
Das liegt schlicht daran, daß die tinyFat Lib von HK keine Unterverzeichnisse unterstützt! Wenn du mit Unterverzeichnissen arbeiten möchtest, mußt du SD Library benutzen.
Zitat:=> findFirstFile() findNextFile() ... = Sacht mir gar nichts!
Wird genutzt um Handles auf die vorhandenen Dateien zu erhalten. Über diese Handles können dann Eigenschaften der Dateien (Name, Extension etc.) ausgelesen werden. findFirstFile() wird einmalig aufgerufen um ein Handle auf die 1. Datei zu erhalten,findNextFile() wird in einer Schleife aufgerufen um jeweils ein Handle für jede weitere Datei zu erhalten. Dazu steht (eigentlich) alles im All_In_One_Demo - Code in den Exmples.

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.05.2014, 12:59
Beitrag #3
RE: handle read-write dir-files with tinyFat
Vielen Dank für die Aufklärung, das is schonmal ne Richtung.
Leider kann ich ja jetzt zu sehen wie ich meinen kompletten Code umstricken kann damit ich die SD benutzen kann und das Laden der Images mit der UTFT_tinyfat jetzt umgehen müsste. Beide Libs zusammen geht nicht. Jedenfalls nicht einfach so.

Gefällt mir garnicht! Was ist den mit dem Linit an Files in der "root" wenn da nach 17 Files Ende ist dann macht sone SD-Card nicht viel Spass mit Arduino.

In unserer Gesellschaft ist das Gehirn am gerechtestesten Verteilt! Jeder glaubt, er habe genug davon.
Hardware: SainSmart Mega 2560 R3 + 3,2" LCD-Touch-Screen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.05.2014, 15:28 (Dieser Beitrag wurde zuletzt bearbeitet: 29.05.2014 15:28 von rkuehle.)
Beitrag #4
RE: handle read-write dir-files with tinyFat
Hallo ArduTux,

die SD-Lib basiert auf der Fat16-Lib.
Allerdings beherrscht die SD - Lib trotzdem nur die 8.3 Namenskonvention.
Generell sind im root jedoch 512 Files möglich. Ob das dann noch flüssig läuft ist eine andere Sache.

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.05.2014, 22:03
Beitrag #5
RE: handle read-write dir-files with tinyFat
Öhhm, jo sowas hab ich mir gedacht, im Grunde ist ja auch noch EPROM da, und speicher inner RTC gibt es ja auch noch. Warum nicht die Timer für dies und das da rein Speichern ...
Das sind aber Themen die mir erst in naher Zukunft über den Weg laufen werden.

Ich bin gerade dabei alle Macken, Ecken und Kanten aus meinem Code heraus zu Schleifen. Bin gerade fertig mit Ordnen und Dokumentieren.

Aber jetzt kommt erstma die Frage nach dem SQW Trick Wink guckst du next Thread.

gruß

In unserer Gesellschaft ist das Gehirn am gerechtestesten Verteilt! Jeder glaubt, er habe genug davon.
Hardware: SainSmart Mega 2560 R3 + 3,2" LCD-Touch-Screen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  If-Bedingung funktioniert nicht bei Serial1.write Datatom 6 226 16.09.2016 20:36
Letzter Beitrag: Datatom
  Serial.write Mathias 6 386 29.07.2016 17:06
Letzter Beitrag: Mathias
  Attempt to write outside of EEPROM memory anwo 1 378 12.02.2016 11:06
Letzter Beitrag: anwo
  Anfängerfrage zu Serial.read Erazor 1 566 16.01.2016 23:01
Letzter Beitrag: Pit
  [EEPROM.h] Unterschied read()/write() und EEPROM[]? gregors 5 887 19.08.2015 19:59
Letzter Beitrag: gregors
  Probleme beim Senden einer Stringvariablen per Wire.write scritch 8 1.861 05.05.2015 08:40
Letzter Beitrag: Thorsten Pferdekämper
  Daten Lesen mit Serial.read() Norbie 0 1.080 29.09.2014 16:00
Letzter Beitrag: Norbie
  Anfängerproblem Serial.read Serial.write trialanderror 3 1.230 26.09.2014 08:52
Letzter Beitrag: trialanderror
  Interupt timer 4x7 Segement Display und Serial read bhilde 0 605 18.09.2014 12:18
Letzter Beitrag: bhilde
  USB STICK seriell (v24) read/write Marc2014 5 1.357 04.08.2014 20:38
Letzter Beitrag: Marc2014

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste