Hallo zusammen, Ich habe eine Frage bezüglich einem Dateisystem auf dem Atmega32u4. Ziel ist es, eine Tabelle im csv Format auf dem Controller zuspeichern und diese Tabelle im Betrieb als lookuptable zunutzen. Die Tabelle wird nicht sehr groß sein. Vllt 30-40 wertpaare. Zur einfachen Nutzung wäre es schön, wenn der Atmega zur Übertragung als USB Stick auftaucht. Denkt ihr, dass sowas möglich ist bzw. habt ihr eine Idee wie ich am besten starte? Viele Grüße Scheldor
Was du brauchst, ist eine "USB mass storage" Implementierung. Für diesen kleinen µC kenne ich keine.
Klar gibt es "Mass Storage" Support für den 32U4: http://www.fourwalledcubicle.com/files/LUFA/Doc/140928/html/group___group___u_s_b_class_m_s.html Das ist zwar eigentlich dafür gedacht, um einen Flash Speicher, eine SD Karte oder ein IDE Gerät anzubinden. Aber es sollte auch so möglich sein es zu verwenden. ===== Aber ich würde das eher mit CDC (virtuelle serielle COM) machen.
Hallo, Warum eine CSV Tabelle, die ist in keinster Weise für den Zugriff per Programm optimiert. https://de.wikipedia.org/wiki/CSV_(Dateiformat) Wenn denn Schlüssel fortlaufende Zahlen sind, dann wird es einfach. Bei freier Schlüssel- zu Wert-Zuordnung hilft eine Hash-Tabelle. Sonst ist es "nur" eine lineares Suche im Schlüsselraum... Also was soll das werden?
Schreib dir einen CSV-Parser für deinen µC und übertrag die CSV-Datei via Seriell! Die eigentlichen Daten passen danach in das interne EEPROM.
Harry L. schrieb: > Schreib dir einen CSV-Parser für deinen µC und übertrag die > CSV-Datei > via Seriell! > Die eigentlichen Daten passen danach in das interne EEPROM. Dabei ist dann der Zugriff über ein EEPROM immer noch langsam, ausser man legt die Tabelle nach dem "booten" in's SRAM ab. Auch könnte man einen Bereich im Flash für diese Daten reservieren, um per Programm noch schneller darauf zugreifen zu können. Müsste dann natürlich die passenden FuseBits gesetzt und ein Programmteil zur beschreiben ins Flash haben.
Karl M. schrieb: > Harry L. schrieb: >> Schreib dir einen CSV-Parser für deinen µC und übertrag die >> CSV-Datei >> via Seriell! >> Die eigentlichen Daten passen danach in das interne EEPROM. > > Dabei ist dann der Zugriff über ein EEPROM immer noch langsam, ausser > man legt die Tabelle nach dem "booten" in's SRAM ab. > > Auch könnte man einen Bereich im Flash für diese Daten reservieren, um > per Programm noch schneller darauf zugreifen zu können. > Müsste dann natürlich die passenden FuseBits gesetzt und ein > Programmteil zur beschreiben ins Flash haben. Ja und? Wenn beim Programmstart eine "gültige" Tabelle im EEPROM gefunden wird, kopiert man die ins RAM - so what?
Danke für die schnellen Antworten. Hintergrund ist der: Es soll über einen Scanner ein Barcode gelesen werden. Anhand des barcode soll dann ein analoger Wert (0-10V) ausgegeben werden. Die Nummer im Barcode enthält leider keinen Hinweis auf die Länge, so dass ich in einer Tabelle nach dem entsprechenden Gegenwert zum Barcode suchen muss. Die Geschichte mit dem Massenspeicher kommt daher, dass ich die Pflege der hinterlegten werte nicht selbst durchführe und auch gerne auf ein Terminalprogramm etc. Verzichten würde. Da kommt es mir ziemlich gut vor, wenn die Person Vorort mit irgendeinem pc einfach eine Text Datei öffnet und dann einfach mit dem Editor anpassen kann. Wenn der benötigte Speicherplatz das einzige Problem ist könnte ich dem guten Stück noch einen externen Flash spendieren. Lg Scheldor PS.: das einstellen des Analogwertes ist nicht zeitkritisch. Und die Tabelle wird nicht alle zwei Minuten geändert.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.