Forum: Mikrocontroller und Digitale Elektronik ATmega32u4 Tabelle als .csv Datei


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von N. S. (scheldor)


Bewertung
0 lesenswert
nicht lesenswert
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

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
Was du brauchst, ist eine "USB mass storage" Implementierung. Für diesen 
kleinen µC kenne ich keine.

von Thomas W. (diddl)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Karl M. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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?

von Harry L. (mysth)


Bewertung
1 lesenswert
nicht lesenswert
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.

von Karl M. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Harry L. (mysth)


Bewertung
0 lesenswert
nicht lesenswert
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?

von N. S. (scheldor)


Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.