' schrieb:Ich habe es Heute in der Firma versuch, es funktioniert nur fast, also bei allen positive Werten kommt es zur richtigen ergebnis, nur bei negativen konnte es nicht unterscheiden, hier nochmal die Anzeige.
Bei normale Rechnung habe ich das Byte 1 mit 256 multipliziert dann mit Byte 0 addiert.
( 5 x 256 ) + 150(96Hex) = 1430 <--- Das funktioniert nur wenn der Wert positiv ist
Bei neg. Wert z.B. Byte 1 =74H und Byte 2=84H in Binär 1110100 und 10000100 , da ist der Fette Wert ein Minus, somit ist das Byte 2 gleich 4H und nicht 84H. Ich habe es in das Programm von Kuka gesehen wie die Positionswerte sein soll, hab vergessen ein Screenshot davon zu machen. Werde morgen eins machen. Wie kann die da das Programm unterscheiden lassen, es geht doch nur wenn ich das 1Bit rausfiltere und eine Abfrage mache wann das 1Bit 1 ist muss dann das Byte mit 128 bzw. 1000 0000 dazu addieren. Ist es so richtig?
Die ganze Sache könnte ganz leicht beendet werden, wenn Du für einen einzigen negativen Wert mal zu den beiden Bytes den richtigen zugehörigen negativen Wert nennen würdest. Du machst zwar oben ein paar Zahlenspielereien, aber dieses einzig Wichtige fehlt. z.B . 255H 255H ist das nun -1 oder nicht?
Dein Programm funktioniert so nicht, das U16-Wort muß zu Integer konvertiert werden. Das machst Du zwar, wenn Du aber dann eine U16 Anzeige anschließt, wird das gleich wieder rückgängig gemacht, wie man auch an dem Konvertierungspunkt sehen kann.
Weiterhin ist zu beachten, daß negative Zahlen nur mit Radix Dezimal angezeigt werden. Bei den anderen Anzeige-Modi (HEx, Binär, Oktal) wird immer das positive Zahlenwort genommen.
Sind das hier die richtigen Werte oder nicht? Wenn nicht, dann nenne einfach ohne Textzutat die 3 richtigen Zahlen für die negativen Werte und Du bekommst innerhalb einer µsec das richtige Konvertierungsprogramm frei Haus.