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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Tubie (Gast)


Bewertung
0 lesenswert
nicht 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)


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

Welcher Compiler? Version?

von Sebastian (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
@ Sebastian

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

DANKE!

Gruß,
Tubie

von Gast (Gast)


Bewertung
0 lesenswert
nicht lesenswert
{$I-} oder Ähnliches

von 6637 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
{$R-} fuer rangecheck, haette ich gedacht

von Frank L. (franklink)


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

Gruß
Frank

von Tubie (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Oder man verwendet den Modulo operator mod.

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.