Forum: PC-Programmierung Turbo Pascal - Addition mehrerer Byte Werte


von Tubie (Gast)


Lesenswert?

Hallo,

es ist schon einige Zeit her, als ich mein letztes Programm in Pascal 
schrieb. In letzter Zeit leider nur ASM.

Versuchen möchte ich für meine Heizungssteuerung einen Netzwerk Partner 
auf einem PC Simulieren. Zur Kommunikation soll nach jedem Datenpaket 
eine Prüfsumme gebildet werden.

CRC:= 1 + Byte1 + Byte2 + Byte3 .... Byte9;

Ich möchte nun den Wert von CRC als 8Bit Prüfsumme mitschicken. Wenn 
allerdings nun CRC > 255 wird, bekomme ich einen Runtime Error. Wie kann 
ich demnach eine Word Variable in eine Byte Variable umwandeln und somit 
nur Bit0-Bit7 übernehmen???

Gruß,
Tubie

von Sebastian (Gast)


Lesenswert?

Versuch dem Compiler irgendwie beizubringen, den Überlauf-Check 
auszuschalten.
Oder nimm Inline-Assembler...

Welcher Compiler? Version?

von Sebastian (Gast)


Lesenswert?

Oder nimm für CRC einen größeren Datentyp (16bit, 32bit) und setz am 
Ende
ein CRC = CRC and $FF dahinter

von Tubie (Gast)


Lesenswert?

@ Sebastian

das ist mir jetzt aber Peinlich - sorry stand wirklich auf dem Schlauch!

DANKE!

Gruß,
Tubie

von Gast (Gast)


Lesenswert?

{$I-} oder Ähnliches

von 6637 (Gast)


Lesenswert?

{$R-} fuer rangecheck, haette ich gedacht

von Frank L. (franklink)


Lesenswert?

Die einfachste Variante man nimmt die Funktionen Hi() bzw. Lo(). Diese 
wandeln einen Integerwert in zwei Bytewerte um.

Gruß
Frank

von Tubie (Gast)


Lesenswert?

Es gibt ja wirklich noch Leute, die Pascal können! Ich dachte, Pascal 
ist schon längst gestorben.

Ich verwende die Sprache noch recht gerne, gerade bei Versuchsaufbauten 
wo man mal schnell was Versuchen möchte (LPT/COM) Schnittstellen 
Zugriffe, etc.

In Windows wird mir das ganze wieder zu Komplex für einen einfachen 
Versuchsaufbau/Programm. Da müßte ich mich erst einmal etwas 
einarbeiten. Unter DOS ist es zwar nicht mehr ganz Zeitgemäß aber die 
Programme laufen!

@Frank Link
Mit Hi / Lo ist es natürlich eine sehr elegante Lösung! Werde es morgen 
gleich mal eintippen.

Gruß,

Tubie

von Spess53 (Gast)


Lesenswert?

Hi

>Es gibt ja wirklich noch Leute, die Pascal können! Ich dachte, Pascal
>ist schon längst gestorben.

Rate mal was Delphi benutzt.

MfG Spess

von StinkyWinky (Gast)


Lesenswert?

Oder man verwendet den Modulo operator mod.

Die Checks auszuschalten halte ich für s... (subobtimal ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.