Binäreditor gesucht

Hallo NG,

will mein 10-Kanallauflicht, das mittels bmcm USB-PIO und angesteuerten Optokopplern mit Triacs hardwäremassig realisiert ist, programmieren. Hierfür habe ich Digital-ProfiLab 4.0 im Einsatz und 4 Grundschaltungen mittels Schieberegister erstellt. Man kommt aber an Grenzen. Nun möchte ich 2 ROM-Bausteine einsetzten (8Bit von ROM1 und 2Bit von ROM2), um Bitmuster für die 10 Kanäle setzen zu können. Das ROM selbst lässt sich innerhalb von Digital-ProfiLab binär füllen, was dabei aber sehr umständlich und unübersichtlich wird. Ich hab mal die ersten 8 Stufen von ROM1 gesetzt und als Datei gespeichert. Leider wird die Datei Hexadizimal erstellt.

01 02 04 08 10 20 40 80

Mit welchem Editor kann ich die Datei Binär editieren und somit dann in den ROM-Baustein laden?

Es sollte dann so aussehen, wie ich es gerne eingeben würde!

1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1

so sollte es dann ausgegeben werden:

1000 0100 -> 2 1 0100 0001 -> 8 2 0011 1001 -> 9 C
--
MfG, 
Peter Weber
Reply to
Peter Weber
Loading thread data ...

Hallo Peter!

formatting link
sollte das können (also das Editieren, nicht das Programmieren).

Gruß Thorsten

--
Der Schrittmotor-Blog: http://www.schrittmotor-blog.de/ 
Thorsten online: http://www.ostermann-net.de/electronic 
 Click to see the full signature
Reply to
Thorsten Ostermann

Am 09.11.2012 17:39, schrieb Peter Weber:

Ich weiß jetzt nicht, ob das einige Hex-Editoren nicht auch schön können. Ansonsten einfach einen x-beliebigen Editor, da nur 0 und 1 tippen und dann einem kleinen Skript vorwerfen, dass die Konvertierung erledigt.

Thorsten

Reply to
Thorsten Just

Sowas kann man schön übersichtlich und schnell in Python programmieren. Folgendes als convert.py speichern:

inp = open('test.txt', 'r') out = open('test.bin', 'wb') for line in inp: byte = 0 bit = 0 for char in line: if char == '1' or char == '0': if char == '1': byte |= 1

Reply to
Frank Buss

Beim ROM-Baustein von Digital-ProfiLab 4.0 beginnt links das Bit 0, bei der Ausgabe in Hexadezimal werden die beiden Nibble des Byte getauscht. Kann ich es nicht in Excel realisieren, dass das Byte in 8 Zellen mit

1er + 0er eingegeben wird, und danach der Hexadezimalwert der beiden Nibble ermittelt werden kann und in 2 weiteren Zellen geschrieben wird. Das Problem ist halt, das ich 10 Kanäle habe (10 Bit) und beim ROM-Baustein immer nur einer editiert werden kann, wenn ich auch die 2 Bit das 2. ROM parallel editieren könnte hätte ich das Bitmuster im Blick, aber so muss ich es abwechselnd editieren und die Sache wird unübersichtlich und Fehler schleichen sich ein.
--
MfG, 
Peter Weber
Reply to
Peter Weber

Klar, in Excel geht das natürlich auch. Damit kann man glaube ich auch Binärdateien schreiben, wie ja die vielen Viren dafür beweisen :-) Ich würde aber empfehlen, einfach das Python-Script entsprechend zu erweitern, ist einfacher. Du kannst es weiterhin in Excel editieren und als CSV-Format exportieren. Das wird von meinem Scriptbeispiel auch verstanden, da nur die "1" und "0" Zeichen ausgewertet werden.

--
Frank Buss, http://www.frank-buss.de 
electronics and more: http://www.youtube.com/user/frankbuss
Reply to
Frank Buss

Ich hab in Excel mal angefangen, mir fehlt jetzt nur noch die Formel, wo die 4 Bit eines Nibble mit der Wertigkeitstabelle verglichen und dann bei Übereinstimmung der passende Hexwert eingetragen wird.

formatting link

--
MfG, 
Peter Weber
Reply to
Peter Weber

Wieso mit der Wertigkeitstabelle vergleichen wenn Excel diese Funktion bereits eingebaut hat? Mit der folgenden Funktion muesste es klappen:

=BIN2HEX(CONCATENATE(Bit_3,Bit_2,Bit_2,Bit_1))

Fuer die Zelle L24 in Deinem Sheet waere also die Formel wie folgt:

=BIN2HEX(CONCATENATE(E24,D24,C24,B24))

Schreibfaule koennen auch =BIN2HEX(E24&D24&C24&B24) verwenden.

Gruss

Fritz

PS: Falls die Wertetabelle zwingend verwendet werden soll (z.B. fuer den generellen Einsatz bei anderen Problemstellungen) gaebe es z.B. die folgende Moeglichkeit (es gibt sicher elegantere Moeglichkeiten):

=OFFSET(E4,INT(FIND("N"&E24&D24&C24&B24,"N"&D4&C4&B4&A4&"N"&D5&C5&B5&A5&"N"&D6&C6&B6&A6&"N"&D7&C7&B7&A7&"N"&D8&C8&B8&A8&"N"&D9&C9&B9&A9&"N"&D10&C10&B10&A10&"N"&D11&C11&B11&A11&"N"&D12&C12&B12&A12&"N"&D13&C13&B13&A13&"N"&D14&C14&B14&A14&"N"&D15&C15&B15&A15&"N"&D16&C16&B16&A16&"N"&D17&C17&B17&A17&"N"&D18&C18&B18&A18&"N"&D19&C19&B19&A19)/5),0)

Note: "N" wird eingefuehrt damit nicht die erste passende Bitfolge sondern das passende Nibble beim suchen als Resultat ausgegeben wird. Der Divisor (hier 5) muss passend zu der Stringlaenge gewaehlt werden (N + 4 Nibble Werte). Mit einer Hilfsspalte wo die Zusammenfuehrung von Spalten A-D der Wertetabelle bereits durchgefuehrt wurde kann natuerlich deutlich einfacher mit den eingebauten Excelfunktionen (Stichworte Lookup, Match, Index etc.) zum gewuenschten Wert referenziert werden.

Reply to
Fritz Rutz

Das generiert aber keine Binärdatei, aber vielleicht meinte Peter damit ja auch eine ASCII-Datei, wo die Werte in hexadezimaler Schreibweise gespeichert werden sollen, was sich übrigens mit meinem Python-Script durch Austausch der write-Zeile realisieren liesse:

out.write('%02x\n' % byte)

und dann die Ausgabedatei nicht mit "wb", sondern nur mit "w" öffnen.

Für eine Wertetabelle könnte man es so erweitern:

wertetabelle = [0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01]

und dann:

if char == '1': byte |= wertetabelle[bit]

Aber der Excel-Code sieht auch prima aus. Sehr leicht zu lesen und zu verstehen, und bei Änderungen kann man den Code problemlos warten :-)

--
Frank Buss, http://www.frank-buss.de 
electronics and more: http://www.youtube.com/user/frankbuss
Reply to
Frank Buss

Das Problem konnte in Excel gelöst werden. Habe das Projekt nun hochgeladen.

formatting link

Vielen Dank an alle freundlichen Helfer

--
MfG, 
Peter Weber
Reply to
Peter Weber

War ja auch nur ein Versuch um ohne Zusatzspalte auszukommen ;-) Die von Peter gepostete Loesung nimmt eine Zusatzspalte zu Hilfe mit der dann mit den ueblichen Excelfunktionen wartungsfreundlich der richtige Wert aus der Wertetabelle ausgewaehlt wird (wieso in diesem Fall ueberhaupt die Wertetabelle noetig ist habe ich allerdings noch nicht nachvollziehen koennen, da die Loesung mit der in Excel eingebauten bin2hex Funktion auch ohne Wertetabelle ebenfalls einwandfrei funzt).

Gruss

Fritz

Reply to
Fritz Rutz

Fritz Rutz schrieb:

Das Problem war wohl das bin2hex nicht funktioniert hat, das wird bei der Standartinstallation von Excel nicht mit installiert.

Frank

Reply to
Frank Müller

Am 11.11.2012 17:44, schrieb Frank Müller:

Mein deutsches Excel kennt auch kein BIN2HEX, aber mit BININHEX funktioniert es :-) oder besser :-(

Grüße, Stefan

Reply to
Stefan Wiest

Stefan Wiest schrieb:

Dann ist das bei dir Installiert bei mir kommt da nur #NAME? und in der Hilfe steht: "installieren und laden Sie das Add-In für die Analyse-Funktionen"

Frank

Reply to
Frank Müller

Wenn schon die Hilfe sagt, wo's wahrscheinlich klemmt: Warum machst du denn nicht einfach, was die Hilfe vorschlägt?

Es kostet doch nur ein paar Mausklicks, das Add-In mit den Analysefunktionen nachzuinstallieren. Im schlimmsten Fall muß man allerdings die Excel-CD suchen gehen.

Reply to
Heiko Nocon

Bei Excel 2010 ist die Funktion auch ohne einbinden des Analysis Toolpak verfuegbar (MS Office 2010 Home & Student Englisch). Aber es kann sein dass es bei aelteren Versionen zuerst explizit eingebunden werden muss (gab auch ein paar nette Datumsfunktionen in diesem Toolpak). Wobei nicht zu verstehen ist, wieso es immer noch das Analysis Toolpak gibt und nicht in Excel integriert ist. Vielleicht war es mal notwendig um Ressourcen zu sparen, aber spaetestens seit

2005 duerften alle PCs in der Lage sein mit dem zusaetzlichen Ressourcenbedarf umzugehen.

Gruss

Fritz

PS: Ist im deutschen Excel wirklich BinInHex statt Bin2Hex?

Reply to
Fritz Rutz

Ich habe Excel 2002 da ist das in der Standartinstallation nicht drin.

Ja da ist alles eingedeutscht. Sogar die IF-Funktion heißt da WENN...

Frank

Reply to
Frank Müller

Am Wed, 14 Nov 2012 17:02:19 +0100 schrieb Frank Müller :

formatting link

Als ich sowas früher benutzt habe, konnte man es abschalten, sprich VBA separat nach englisch umschalten, leider vergessen wie (entweder eine Option oder Auswahl bei der Installation IIRC). Ich weiß allerdings, daß einem das Makro komplett aufgemischt wurde, wenn man es mal mit einer eingedeutschten MAkro-IDE bearbeitet hat.

Marc

Reply to
Marc Santhoff

Am 14.11.2012 09:35, schrieb Stefan Wiest:

Da muss man erstmal drauf kommen...

Butzo

Reply to
Klaus Butzmann

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.