mikrocontroller.net

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


Autor: Tubie (Gast)
Datum:

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

Autor: Sebastian (Gast)
Datum:

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

Welcher Compiler? Version?

Autor: Sebastian (Gast)
Datum:

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

Autor: Tubie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Sebastian

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

DANKE!

Gruß,
Tubie

Autor: Gast (Gast)
Datum:

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

Autor: 6637 (Gast)
Datum:

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

Autor: Frank Link (franklink)
Datum:

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

Autor: Tubie (Gast)
Datum:

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

Autor: Spess53 (Gast)
Datum:

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

Autor: StinkyWinky (Gast)
Datum:

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.