Hallo, ich habe für ein µC-Projekt eine Lookup-Tabelle mit 1024 Werten erstellt. Die Tabelle ist momentan in einer Excel-Datei. Bisher habe ich das immer mit kopieren und in den Quellcode einfügen realisiert. Das ist mir aber zu umständlich, da ich viele Controller programmieren muss und jeder "seine" Tabelle bekommt. Ich könnte die Tabelle auch als .txt mit 1024 Zeilen speichern. In jeder Zeile steht dann ein Wert. Gibt es eine einfache Möglichkeit, daraus ein fertiges Hex-File zu generieren? Da gibt es doch bestimmt irgendein Progrämmchen, dem ich z.B. tabelle.txt übergebe, definiere, mit welcher Adresse die Hex-Datei beginnen soll und es mir dann tabelle.hex erstellt, also inkl. Kopf, Prüfsummen usw.? Mit der Suche hier habe ich nichts derartiges gefunden. VG Third-eYe
Bist du dir sicher, dass die Lookup-Tabelle in eine eigene Hex kommt und nicht in den Programmcode? Um welchen µC geht es hier eigentlich?
Ich bin kein Excel Spezi, aber wenn du in der Lage bit, Excel die Ausgabe von Zahlen durch Komma getrennt beizubringen, musst du nur noch ein z.B. DB davor stellen. Also eine Zeile sähe so aus
1 | <TAB oder Leerzeichen>DB<TAB oder Leerzeichen>12,43,56,45,76,32,89,57 |
Es hängt also davon ab, ob du Excel dazu bringen kannst, solche Strings zuammenzubauen und zu exportieren. Das ganze passt du so an, das es mit dem Assembler für deinen MC assembliert.
Datei mit HxD öffnen, File->Export->Intel Hex.
Ein kleines Makro schreiben und die Tabelle als C-Code formatieren und als .c ausgeben.
Falk Brunner schrieb: > Ein kleines Makro schreiben und die Tabelle als C-Code formatieren > und > als .c ausgeben. Das kann man machen, wenn man seine Zeit verschwenden will. Oder man öffnet halt die Datei in HxD, File->Export->C.
>Ein kleines Makro schreiben und die Tabelle als C-Code formatieren und >als .c ausgeben. Da reicht auch mit Komma getrennte CSV. uint8_t table[] = { #include "table.csv" };
Third Eye schrieb: > ich habe für ein µC-Projekt eine Lookup-Tabelle mit 1024 Werten > erstellt. > Die Tabelle ist momentan in einer Excel-Datei. Mein Gott, Excel hat eine eingebaute Pogrammiersprache, die Turing-vollständig ist. Damit kannst du alles, was du willst, direkt aus einer Tabelle basteln. Auch IntelHex natürlich. Einfachere Formate, z.B. Quelltext-Defines für alle im µC-Bereich üblichen Sprachen, kann man sogar ohne Rückgriff auf VBA basteln, allein durch Nutzung der Tabellenfunktionen, die Excel direkt auf seiner Oberfläche bereitstellt. Bei nochmaliger Betrachtung: auch IntelHex ist ohne VBA noch einigermaßen beherschbar. Die Prüfsumme macht es aber schon wirklich anstrengend, für sowas wurde die Formeleingabe nicht wirklich geschaffen... So oder so: Lerne einfach den Umgang mit dem überaus mächtigen Werkzeug Excel.
@ holger (Gast) >Da reicht auch mit Komma getrennte CSV. >uint8_t table[] = { >#include "table.csv" >}; Hey, cleverer Trick! Super!
Hodenklemme schrieb: > Das kann man machen, wenn man seine Zeit verschwenden will. Oder man > öffnet halt die Datei in HxD, File->Export->C. Weil das immer gleiche Rumgeklicke viel schneller geht als eine Tabelle in einem .c-File, die von 'make program' automatisch eingebaut wird. Kommt euch Mausschubsern das nicht selbst irgendwann blöd vor, 9000 mal die gleichen Mausbewegungen in irgendwelchen überflüssigen bunten T00lz zu machen?
Thomas schrieb: > Hodenklemme schrieb: >> Das kann man machen, wenn man seine Zeit verschwenden will. Oder man >> öffnet halt die Datei in HxD, File->Export->C. > > Weil das immer gleiche Rumgeklicke viel schneller geht als eine Tabelle > in einem .c-File, die von 'make program' automatisch eingebaut wird. > Kommt euch Mausschubsern das nicht selbst irgendwann blöd vor, 9000 mal > die gleichen Mausbewegungen in irgendwelchen überflüssigen bunten T00lz > zu machen? Hör mal, ist ja schön, dass ihr auf der Sonderschule jetzt auch Internet habt, aber versuch doch mal die geschriebenen Worte zu verstehen. Was glaubst du wohl, was für eine Datei rauskommt, wenn ich Export->C mache? Genau, ein .c-File! Das man dann im Projekt mitkompiliert! Wenn du dir jetzt total dumm vorkommst, mach dir nichts draus, du hast recht.
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.