Supportnet Computer
Planet of Tech

Supportnet / Forum / Mainboard/CPU/RAM

Hex-Zahlen Kodierung bei serieller Schnittstelle ...





Frage

Hallo, mein Labor-Netzgerät sendet über die serielle Schnittstelle seinen Status an den PC. In der Anleitung steht nun folgendes über die Kodierung der Spannung im gesendeten Code. "...No.3 byte (U Hi) is high 8 digit and No. 4 byte(U Lo) is low 8 digit for output voltage. For exsample: output voltage is 35.38V then U H =09H U L =EAH Aber ich komme einfach nicht darauf, was denn "high 8 digit" und "low 8 digits" bedeutet. Kann das angegebene Beispiel leider nicht nachvollziehen. Das H aus dem Beispiel deutet die Verwendung von Hex-Zahlen an. Vielen Dank für Eure Hilfe ... Gruß Susi

Antwort 1 von Das_Urmel

Höheren 8 Ziffern, unteren 8 Ziffern.
das von dir angegebene - im Buch Beispiel ist sogar falsch.Mist das Ding die Spannung, dann ist
3te Byte UH = 0Dh
4te Byte UL = 0D2h

Machst du da Dez draus, hast du genau die im Beispiel angegebene Spannung von 35,38

Bei den hexwerten im beispiel komt nur 25.38 raus :)

Alles klar?

mfg
Michael Bormann

Antwort 2 von cofa

hallo susi
noch ein Tipp für die Umrechnung von Hex auf Dezimal kannst du folgenden Link verwenden:

http://www.arndt-bruenner.de/mathe/scripts/Zahlensysteme.htm

Wähle dort im Pulldownmenü "Zahlensysteme" oben = "16 Hexadezimal " und unten ="10 Dezimal" aus
und trage dann oben rechts den HL-Wert ein:
also z.Bsp. 09EA =>> ergibt 2538
mfg cofa

Antwort 3 von Das_Urmel

Och Cofa
start-ausführen
calc
von Standard auf Wissenschaftlich umstellen - schon convertest du wie blöde. *grins*

gn8
Michael

Antwort 4 von susineu

Hallo nochmal,

Danke für die Infos, also dann hab ich´s doch richtig verstanden. Nur das dumme Beispiel hat mich so verunsichert.

Kennt einer von Euch ein Windows Tool, mit dem ich die empfangenen Daten von der Schnittstelle direkt als Binärcode darstellen kann ? Wenn ich das Hyperterminal benutze bekommen ich immer nur seltsame Sysmbole angezeigt, vermutlich ein ASCII Datensatz mit irgendeiner Erweiterung .

Nochmals danke und Gruß
Susi

Antwort 5 von Das_Urmel

Eure Aparatur sollte da eigentlich eine Anwendung haben, die diese Daten in Empfang nimmt und anzeigt?

Alternativ könnte man bei Kentnis der Daten auch ein Script - naja - oder ein kleines Prorämmchen schreiben, das genau das macht.
Dazu wären dann aber etwas mehr Informationen nötig - Spass machen würds schon. :)
mfg
Michael Bormann

Antwort 6 von susineu

@ Urmel und alle anderen Bash-Profis ...

Habe jetzt die genaue Codierung verstanden. Meine Aufgabe ist jetzt folgende: Ich brauche ein Programm/Bash-Skript dass die Spannung am Labor-Netzgerät einstellt und in etwa wie folgt aussehen soll:

>Benutzereingabe neuer Spannungswert
>Abfrage des Status (aktuelle Spannung) des Netzgerätes über 15Byte an COM1
>Berechnung der Spannungsdifferenz
>Senden der nötigen binären Sequenz (4Byte) über COM1 um die alte Spannung zu erhöhen/erniedrigen
> Fertig

Zur Statusabfrage: Das Netzgerät sendet kontinuierlich seinen Status in 15 Byte. Als Startwert sendet es ein bestimmtes Start-Byte (hex: BE), damit man weiß wo die Sequenz beginnt.

Wie kann ich die Status Sequenz auslesen, bzw für weitere Auswertung zwischenspeichern ? Wie erreiche ich, dass die kontinuierliche Sequenz genau ab dem Start-Byte eingelesen wird ? Wie sende ich einen binären Code direkt über COM1 ?

Zur Lösung steht mir am Linux-PC ein C/C++ Compiler oder eben die BASH zur Verfügung.

Für jede Hilfe schonmal vielen Dank im Vorraus...

Gruß Susi

Antwort 7 von Das_Urmel

Zitat:
Zur Lösung steht mir am Linux-PC


*hüstel*

Damit bin ich raus, Win ja - C, C#, VB, Script - nur Lin eben nicht.
mfg
Michael

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: