PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Typecast für ADC-Wert??



niemalsaufgeben
14.12.2005, 13:02
Hallo Miteinand

Gibt es im Bascom eigentlich die möglichkeit eines Typecasts?
Ich möchte auch einen negativen Wert vom ADC anzeigen können.



Local Vr As Single
...
Start Adc
Vr[single] = Getadc(0)
Vr = Vr - 10
Vr = Vr / 2

Print N ; ". Die Temperatur beträgt : " ; Vr ; " C."


Eigentlich müßte so ja für ADC = 0V ein Wert von -5 angezeigt werden?!
Es gint aber immmer einen Zahlenüberlauf!
Hat jemand ne Idee?

PicNick
14.12.2005, 13:22
EInmal um die ecke:


LOCAL adcval AS WORD
LOCAL asingle AS single
adcval = getadc(..)
asingle = adcval
asingle = asingle - 10
...usw...

niemalsaufgeben
14.12.2005, 14:34
Hey cool. So geht es jetzt. Vielen Dank!
Warum ist denn der Umweg nötig?

PicNick
14.12.2005, 15:09
Getadc() ist dodel. der schreibt sein 16 Bit in das Return-Feld und tschüss.
C-mäßiges casten in der Klammer tut der Bascom nicht

niemalsaufgeben
14.12.2005, 18:24
ok, danke dir.

Habe da aber noch ne kleine Frage.
Bin noch viemlich frisch in der Materie, wie ist das mit dem Syntax für Funktionen?



Declare Function Tmessen(Byte) As Single
...
Function Tmessen(byte)

Start Adc
Vrtemp = Getadc(0)
Tmessen = Vrtemp
Tmessen = Tmessen - 10
tmessen = tmessen / 2

End Function

Ich will einen Wert des entspechenden ADC Eingang übergeben und den Messwert zurück haben.

PicNick
14.12.2005, 18:56
Declare Function Tmessen(byval Arg As Byte) As Single


Dim Varia As Single


' haupt programm
Start Adc ' das solltest du nur einmal am anfang machen

Do

Varia = Tmessen(4)
print varia
Loop
End



Function Tmessen(byval Arg As Byte) As Single
Local Vrtemp As Word

Vrtemp = Getadc(arg)
Tmessen = Vrtemp
Tmessen = Tmessen - 10
tmessen = tmessen / 2

End Function


das ginge zum beispiel

niemalsaufgeben
14.12.2005, 19:11
Ja genau.
Das hab ich gesucht. Vielen Dank.