TIA 16bit Zähler mittels Differenz zu 32bit erweitern - Nulldurchgang ?

nekron

Level-2
Beiträge
333
Reaktionspunkte
31
Zuviel Werbung?
-> Hier kostenlos registrieren
[SUB]Moin moin,

ich stehe gerade richtig auf dem Schlauch ...
ich hab so was schon mal irgendwann gemacht, aber grade den Faden verloren...

ich habe einen 16bit Zähler der mir von einem PN-Gerät geliefert wird - den möchte ich zu einem 32bit Wert aufstocken :)

also Differenz zwischen dem Wert aus dem letzten Zyklus und dem aktuellen Zyklus genommen und diese Differenz dem DINT hinzuaddiert - nur wie bekomme ich den Nulldurchgang des Urwertes hin ? 16#FFFF - 16#0 ist nicht gleich 1 sondern 65535 :)

Vielleicht kann mir jemand kurz helfen - es ist ja Sonntag ich weiss :)
(TIA V15 wenns jemand interessiert :))

Gruss,
nekron
[/SUB]
 
Der Befehl lautet ITD, zumindest für 300/400 Familie.
Er konvertiert von INT nach DINT indem das Vorzeichen korrekt erweitert wird.
Also nach der Differenzbildung (16 bit) und vor dem Addieren ITD.
Gruß
Erich
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
[SUB]16#FFFF - 16#0 ist nicht gleich 1 sondern 65535[/SUB]
16#FFFF ist als UINT oder DINT 65535 und interpretiert als INT -1.
-1 abzüglich 0 bleibt also 65535 (UINT oder DINT) bzw. -1 (INT). Da sollte auch nicht +1 herauskommen!?
Die Differenz der UrZählerWerte neu - alt muss noch als INT gebildet werden. Diese Differenz wandelst Du in DINT und addierst sie auf Deinen DINT-ZählerWert.
 
Zuletzt bearbeitet:
Zurück
Oben