PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Word in Integer?...



Karlja
24.08.2005, 22:02
Hallo,
Hab da nochmal eine grundsätzliche Frage.
Vom AD-Wandler bekomme ich mit Getadc ja ein Word zurück. Nun würde ich gerne aus diesem Word einen Integer-Wert machen, um damit weiter zu rechnen und zu vergleichen... allerdings habe ich nichts gefunden, wie es geht.
Daher meine Frage:
Wie mache ich aus einem Word ein Integer? oder geht das etwa mit einem einfach '='.
Bascom meckert beim kompilieren an dieser Stelle immer rum...

Danke für eure Hilfe
cu
Karlja

PicNick
25.08.2005, 08:33
Sio kannst du beides haben
DIM Adcword as word
DIM Adcint as integer at Adcword overlay

adcword = getadc(x) ' jetzt gilt das word
' sonst sagtst du adcint dazu, je nachdem

Dunuin
08.08.2010, 21:07
Ich weiß, alter Thread, aber ist das einzige, dass ich gefunden habe zu dem Thema.

Also ich möchte folgendes rechnen:
Restzeit = Spielzeit - Seccounter

Spielzeit und Seccounter sind Word, Restzeit ist Integer, da auch negative Werte herauskommen könnten, wenn da was mit den ISRs nicht klappt.

Jetzt bekomme ich aber:
Error 242: Source Variable does not match the target variable.

Wie muss ich das denn da mit der Typenumwandlung machen?
Das Ergebnis der Rechnung ist immer unter dem maximal zulässigen Wert eines Integers.

for_ro
08.08.2010, 22:55
Hallo Dunuin,
der Fehler muss an etwas anderem liegen. Das hier kmpiliert einwandfrei und rechnet auch richtig:

Dim Restzeit As Integer
Dim Spielzeit As Word , Seccounter As Word
Spielzeit = 100
Seccounter = 10000
Restzeit = Spielzeit - Seccounter 'Restzeit = -9900

Dunuin
09.08.2010, 01:16
Ah, ich sehe gerade, dass ich Spielzeit als Konstante angegeben habe, weil die sich eigentlich nicht ändert.

Dann mag Bascom da wohl einfach keine Konstanten.
Werde da gleich mal eine normale Word-Variable daraus machen und gucken ob es klappt.

for_ro
09.08.2010, 11:13
Das hier

Dim Restzeit As Integer
Dim Seccounter As Word
Const Spielzeit = 100
Seccounter = 10000
Restzeit = Spielzeit - Seccounter

kompiliert er bei mir auch ohne Fehler und rechnet richtig.

peterfido
10.08.2010, 19:23
Evtl hast du die mcsbyte.lbx eingebunden. Dann lassen sich nicht mehr alle Datentypen konvertieren.