mikrocontroller.net

Forum: PC Hard- und Software Intel HEX format


Autor: Igor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,


gibt es eine möglichkeit daten aus excel in intelhex format zu 
konvertieren? Gibt es da ein Programm, oder ein Weg wie ich mir Daten 
die Hexadezimal in Excel sind in intelhex format konvertiere???


Ich habe paar Programme gefunden aber die erkennnen mir die Daten aus 
Excel als ascii Code und nicht als hexadezimal an.


Danke

: Verschoben durch Admin
Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> daten aus excel in intelhex format zu konvertieren?
Sind das in Excel einfach Standard-Zahlen im Bereich von 0-255?
Wie sieht die Tabelle aus?

Ich würde die Zahlen einfach in ein Textfile exportieren und dann kurz 
ein C-Programm schreiben, das mir das Zeug in ein Binärfile konvertiert. 
Und von Binär nach IHex gibt es Konverter wie Sand am Meer...

Autor: Philipp Kälin (philippk) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mal ein C-Programm geschrieben, das liest im Moment ein 
Binärfile ein und konvertiert es zu Hex.

Man kann einen beliebigen Array mit 8-Bit Werten füllen, der dann in ein 
Intel HEX-File konvertiert wird. Sollte einfach anpassbar sein.

Autor: Igor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Waoooo super danke für die Tipps!

Zu den Werten nochmal, ich muss 8400 Werte die 12bit breite sind im 
Flash ablegen. Dann hat sich herausgestellt das mein Flash zwar 16bit 
Datenbusbreite hat aber nur 8 bit am Eval board angelötet sind. Somit 
habe ich die Werte gesplittet und lese zwei Byte aus und gebe sie 
"verklebt" aus. Was dann von 8400 Werten zu 16800 Werten geführt hat.


Also so die zahl 4095 = 0FFF. Im intelhex muss das erste Daten byte 0F 
und das zweite FF sein. Ich lese das 0F aus dann das FF aus und dann 
gebe ich 0FFF aus. Was auch klappt. Mein problem ist das ich ich ca. 800 
Kurven und diese ins intelhex format bringen muss. Ich habe auch 
geschafft Kurven von Excel über Intelhex zu bin2hex im Flash 
abzuspeichern. Das Problem ist aber das er nach 16 bit Adressen wieder 
von vorne anfängt, wo quasi er eignlicht den Code bringen müsste die 
erweiterte Adresseleitung zu machen (Intelhex Type 04) glaub ich. Aber 
da scheitert es, zum einem am Programm zum anderem an meinem Verständiss 
wie ich quasi nach 65535 weiter addressiere.....




Wenn noch paar Tipps kommen wäre ich sehr Dankbar.




gruß

Autor: Igor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab mir dein Code angeschaut, bin nicht der C checker aber so wie 
ich das verstanden habe geht er nur bis 10 bit addressen. ich brauchte 
aber 24 bit addressen, könnte man das umändern?

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Igor:

Für solche Konvertierungsaufgaben (und ähnliches) lohnt es sich, sich 
eine Skriptsprache anzueignen. Ich empfehle Python, aber auch mit Perl 
oder Matlab läßt sich so eine Aufgabe lösen; notfalls auch mit C.

Duke

Autor: excel (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
ich hab mir jetzt nicht alles durchgelesen, aber evtl. hilft die die 
Funktion DEZINHEX oder DEZINBIN weiter

Autor: Igor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jepp das hatt ich schon verwendet, lediglich gab es zwei versionen, die 
eine die nur 16 bit addresse unterstüzt, und die andere die auch die 
erweiterung auf 32 hat. hab die zweite dann gefunden und hat soweit 
geklappt.


Gruß und Danke

Autor: Philipp Kälin (philippk) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Igor
Weiss nicht wie du drauf kommst, warum mein Code nur bis 10 Bit 
funktionieren soll. Falls ich dich richtig verstehe und du 24 Bit 
adressieren willst, also 4 MegaByte bezweifle ich eher, dass du das mit 
Excel hinkrigst, nach 65k Zeilen ist da nämlich Schluss.

Wenn du im hexGenerator.c die folgende Zeile so anpasst, dann kommst du 
auf 65 MegaByte (ca. 26Bit), das sollte Reichen.
#define MemorySize (65 * 1024 * 1024)

P.S. Bei solch grossen Datenmengen nimmt man normalerweise Binärdateien, 
da die Nutzdaten im Hex-File nur knapp die Hälfte sind.

Autor: Igor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,


>P.S. Bei solch grossen Datenmengen nimmt man normalerweise Binärdateien,
>da die Nutzdaten im Hex-File nur knapp die Hälfte sind.


Verstehe ich nicht so ganz. Wie gesagt ich muss 800 Kurven mal 16800 
Byte ablegen.

Mein Weg:


EXCEL EXCEL => in HEX EDITOR KOPIEREN       => als file.bin abspeichern
4095  0FFF     0000  0F FF 0F FE 0D DD . . .
4094  0FFE
4093  0DDD
.
.
.

 => BIN2HEX file.bin file.hex


Fertig!

Autor: Vlad Tepesch (vlad_tepesch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Igor schrieb:
>>P.S. Bei solch grossen Datenmengen nimmt man normalerweise Binärdateien,
>>da die Nutzdaten im Hex-File nur knapp die Hälfte sind.
>
>
> Verstehe ich nicht so ganz.
ist doch nicht so schwer.

> Wie gesagt ich muss 800 Kurven mal 16800 Byte ablegen.
hat damit gar nix zu tun

1 Byte (0-255) wird im Intel-Hex-Format durch 2 Bytes (0-F) codiert.
das heißt, dass der Nutzdatenanteil 50% beträgt.
dazu kommen dann noch die Prä- und Postfixe vor/hinter jeder Zeile 
(Startbyte, Coount, Adresse, Typ, Prüfsumme), was je nach länge der 
Datensätze auch noch einen ordentlichen Anteil dazubringt.

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.