Variablendefinition, Anfängerproblem

Mike
 
Avatar
 
Subject:

Variablendefinition, Anfängerproblem

 · 
Posted: 10.11.2012 - 18:50  ·  #1
Hallo,

ich versuche mich seit kurzem in der µC Programmierung. Leider fehlt mir zu Pascal der Hintergrund (im Abendstudium etwas C + Assembler). Ich habe ein Evaluation Board von Pollin (auch wenn es nicht das Beste ist) und einen ATMega8 dazu. Erste Versuche mit dem Simulator haben funktioniert und auch mit dem Board die ersten Schritte (Taster einlesen, LED schalten, serielle Ausgabe des Taster/LED Zustands als festen Text).
Jetzt wollte ich eine Variable verwenden und zuerst mal nur jeden Schleifendurchlauf zählen. Aber ich bekomme schon beim compilieren Fehler. Ich habe es mit der Definition, unter var, als integer oder float erfolglos versucht (und
Code
From System Import LongWord, LongInt, Float;
+
Code
var
  Taster1_on, Taster2_on : boolean;
  LED1[@PortD, 5] : bit;
  LED2[@PortD, 6] : bit;
  hz : float; {Test ob zählen so funktioniert}
ist hoffentlich richtig?). An der Stelle wo das Zeichen mit WriteLn ausgegeben werden soll wird der Fehler das an dieser Stelle string oder char akzeptiert wird gemeldet.
Sicher habe ich hier den falschen Ansatz, aber noch keinen besseren gefunden. Wenn ich das mit Lazarus probiere funktioniert es.
Gibt es eine Hilfe/Anleitung zum Einstieg, am Besten mit einfachen, nachvollziehbaren Beispielen?

Danke
Mike
miparo
Administrator
Avatar
Gender:
Location: Germany
Age: 58
Posts: 959
Registered: 09 / 2007
Subject:

Re: Variablendefinition, Anfängerproblem

 · 
Posted: 10.11.2012 - 21:54  ·  #2
Hallo Mike,
Du solltest den kompletten (Teil)Code posten damit wir verstehen was Du meinst

Gruß
miparo
Gunter
Administrator
Avatar
Gender:
Location: Frankfurt Main / Germany
Posts: 1697
Registered: 02 / 2003
Subject:

Re: Variablendefinition, Anfängerproblem

 · 
Posted: 11.11.2012 - 01:39  ·  #3
Hi Mike,

ich nehme an, Du willst hz direkt mit writeln (hz) ausgeben.
Sowas macht kein Standard Pascal und widerspricht der Philosopie von Pascal.
Ein Pascal-Compiler macht nicht, wie C, einfach irgendwelche Annahmen.
Vielmehr musst Du genau spezifizieren, dass Du ein Integer, LongInt, Float als String brauchst.
DocuCompiler.doc beschreibt das in Kapitel 4.13.30 Konvertierung zu Strings.
Je nach Variablen Typ also z.B.
writeln ('Zählerstand ist: ' + IntToStr(hz)); oder
writeln ('Zählerstand ist: ' + FloatToStr(hz)); oder ...
Bei Int kannst Du zusätzlich die Anzahl der Stellen angeben (und ob vorne mit Blank oder sonstwas aufgefüllt werden soll wenn der Zählerstand zu kurz für die Stellenanzahl ist)
Bei Float zusätzlich die Anzahl der Vor- und Nachkommastellen (und , oder . als Komma).

Das mag dem C-Profi umständlich vorkommen, verhindert aber manchen Fehler des Users.

Und Miparo hat völlig recht:
bei Fragen IMMER ein KOMPLETTES (möglichst kleines) Beispiel liefern
Es gibt zu viele "wenns" und Konstellationen, dass sonst was gesagt werden kann.

Gruß
Gunter
Mike
 
Avatar
 
Subject:

Grundlagen

 · 
Posted: 11.11.2012 - 12:51  ·  #4
Hallo,

danke erst mal für die Antworten und den Hinweis wo in der DocuCompiler.doc ich dazu etwas finde.
Jetzt versuche ich das zu verstehen und umzusetzen. Leider fehlt mir im Moment die Zeit mich völlig da rein zu vertiefen, aber das Projekt muss neben Arbeit und Abendstudium halt auch noch fertig werden.

Danke und schönen Sonntag
Mike
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   74   88 · Page-Gen-Time: 0.026233s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI