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
Versuch dem Compiler irgendwie beizubringen, den Überlauf-Check auszuschalten. Oder nimm Inline-Assembler... Welcher Compiler? Version?
Oder nimm für CRC einen größeren Datentyp (16bit, 32bit) und setz am Ende ein CRC = CRC and $FF dahinter
@ Sebastian das ist mir jetzt aber Peinlich - sorry stand wirklich auf dem Schlauch! DANKE! Gruß, Tubie
Die einfachste Variante man nimmt die Funktionen Hi() bzw. Lo(). Diese wandeln einen Integerwert in zwei Bytewerte um. Gruß Frank
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.