PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : csv file inhalt in code für µP bekommen ?!



navyseal
28.11.2005, 18:11
hey @ all!

ja hab mal ne frage ... und zwar is es möglich beim at128 oder generell ein file auf den µP raufzuladen und diese dort auszulesen ... hab sowas noch nie gemacht von daher bitte ;) nicht so schimpfen wenns kompletter blödsinn ist ;)

selbst wenn das geht, is das zu empfehlen oder kennt jemand eine bessere möglichkeit die daten vllt beim compilen mit einzubinden .....


edit: ok kommt denk ich eh nur das 2. in frage ... nur hm wie soll das gehn ;)

bin für jede hilfe dankbar! danke schonmal für euer bemühen!
mfg navyseal

PicNick
28.11.2005, 18:38
Du kannst natürlich mit der UART (z.B) auch files hin- und herschicken. (Auch ein Excel-Sheet im CSV-Format)
Kannst du genauer sagen, was du machen möchtest ? (weil Platz zum Speichern ist auf dem µC natürlich knapp)

navyseal
28.11.2005, 18:43
hallo! ja ich möchte die bewegungswinkel von servos in cvs speichern und der
µP soll das dann die daten verarbeiten können.... nur wie bekomm ich die da rein ?! :D
cool wäre wenn man beim kompilen sagen kann der füllt ein array oder so mit diesen daten.... nur wie ... ja uart isn eher alter totfeind von mir :D aber wäre ne möglichkeit!

PicNick
28.11.2005, 19:01
Ist das so gemeint:
Am PC is eine Csv-file mit 10 Spalten, für jedes Servo eine (sagen wir halt)
Und die schickst du dann zum µC und der stellt dann die 10 Servos danach ein ?

navyseal
28.11.2005, 19:03
genau so will ich das haben ;) nur dass abtippen is halt nen krampf und sollte halte programmiertechnisch gelöst werden ;)

und diese sind eben fortlaufen also so 200 einstellungen oder so

PicNick
28.11.2005, 19:24
Da ist nur eine Ecke dabei: Wenn du im Dos-Fenster (am PC) die File zu µC kopierst (mit COPY), bläst der natürlich alles in einem Schwung rüber, davon hast du nix. du müßtest wahrscheinlich mit XON/XOFF arbeiten, daß der PC immer wartet, wann es mit der nächsten Zeile weitergeht.

Abtippen: Naja, irgendwo müssen die Werte ja herkommen.

navyseal
28.11.2005, 19:30
hm glaub du hast mich leider nit ganz verstanden ... das ganze isn robotor .... es wäre eben schön wenn ich das ganze csv file rein"parsen" könnte und im robotor speichern könnte ....

PicNick
28.11.2005, 19:45
Versteh. Müßte man mal überlegen.
Im C-Programm brauchst du ja
char servo_werte[] = {
val, val, val, .....
};
Also müßt' man machen
char servo_werte[] = {
#include "file.csv"
};

Und dem Excel (?) müßte man beibringen, daß er Beistriche statt strichpunkte macht.
Das geht, ich weiß jetzt aber nicht, wo.

navyseal
28.11.2005, 19:54
hey echt das is alles ? :D
hey ... das mit strichpunkt is kein prob weil das file im vb erzeugt wird und ich den strichpunkt selber bestimme !

ähm integer geht an diesr stelle nicht oder?!
also heißt das ich mach einfach ....

double servo_werte[a,b] = {#include "file.csv"};

PicNick
29.11.2005, 07:14
ähm integer geht an ..?!
In der Include-file will er text haben, binär is' nich.


double servo_werte[a,b] = {#include "file.csv"};
Das "#include" sollte in einer neuen Zeile stehen. Aber probier's vielleicht nimmt er es auch so

Was auch immer, daß, was du in der normale Source schreiben kannst, geht auch in der Include-file.
Wenn du die File eh' mit VB machst , kannst du dir auch eine Programm-Generator stricken

navyseal
29.11.2005, 07:38
thx schonmal für die hilfe!!!!!

und so meinst du geht das das ich werte die zb so aussehn ....

55 , 44
66 , 88
11 , 44


nur wenn ich das als text bekomm bräucht ich hier ja ein 4 dimensionales array weil ich ja nur ein zeichen einlesen kann oder ? achja und die ganzen sachen durch komma trennen oder ? hm hab da auch noch die funktion fscanf gefunden nur die schaut ein wenig komplizierter aus... mal schaun ob deine variante funkt ;)

mfg navyseal

PicNick
29.11.2005, 08:53
Am besten isses, du schreibst erstmal ein paar solche Tabellendefinitionen direkt in die C-Source rein, bis das rauskommt, was du willst.
dann weisst du, wie das aussehen soll und kannst es mit VB oder sonstwas nachbilden.

navyseal
29.11.2005, 13:26
hallo ... .
ich weiß schon was ich mit den werten machen möchte es geht ja nur darum die in ein array reinzubekommen :) und brauch ein 2d array wo eben werte wie 40 - 150 vorkommen können!

hatte leider keine möglichkeit das auszuprobieren aber bist du dir sicher dass es so leicht geht ? :) sprich der das alles erkennt... :)

PicNick
29.11.2005, 14:28
Mehrdimensional wäre ja , wenn ich mich recht erinnere
char tabelle[][] = {
{ a1, b1, c1, d1 } , // das müsste in der File-stehen
{ a2, b2, c2, d2 } ,
...
{ an, bn, cn, dn }
};

bluebrother
29.11.2005, 16:28
warum fest reinklopfen? Warum nicht die Werte ins interne EEPROM, dann kannst du die auch zur Laufzeit noch ändern?
Hochladen wäre dann wahrscheinlich USART am geschicktesten ...

navyseal
08.12.2005, 12:14
hey !

danke nochmals für den tipp ... hab das ganze nun zum laufen bekommen :D

nun muss ich noch schaun wie man dass array in eeprom oder flash abspeichern kann ;)

PicNick
08.12.2005, 15:22
Na super, wieder was geschafft.

Nuß um Nuß sucht das Eichhorn die Nahrung für den kommenden Winter.