Forum: Mikrocontroller und Digitale Elektronik SGN-Funktion unter Bascom geht nicht (AVR)


von Herr_Mann (Gast)


Lesenswert?

Hallo,
folgendes kleines Bascom-Programm:

'----------------------------------

$regfile = "m16def.dat"
$crystal = 8000000

Dim X As Integer
Dim Y As Integer

X = 156

Y = Sgn(x)

'----------------------------------


Wenn ich es starte, kommt diese Fehlermeldung:

error:63 line: 12  integer or long expected for abs()


Desgleichen, wenn ich die Variablen als Integer oder Single definiere.

Weiß jemand Rat? Und woher kommt die Fehlermeldung mit dem "abs()", es 
wird in Zeile 12 doch die SGN-Funktion verwendet?

Viele Grüsse!!!

von Gast (Gast)


Lesenswert?

Wenn beides Single Variablen sind, geht das.

Gruß

Rolf

von Klaus (Gast)


Lesenswert?

Jetzt muß Ich mal ganz blöd (mit VB-Kenntnissen) fragen:

> Sgn()

ist die Frage nach dem Vorzeichen?

warum lässt sich das einem Integer nicht zuweisen? (1/0)

von Uhu U. (uhu)


Lesenswert?

Bin zwar auch kein Basic-Crack, aber ich würde es mal mit

Y = Sgn(X)

versuchen, nachdem oben X = 156 zugewiesen wurde.

von MWS (Gast)


Lesenswert?

Naja, in der Bascom Hilfe steht:

"X The single or double to get the sign of." Da steht nix von Integer, 
und dann geht's halt auch nicht damit.

von Bernd (Gast)


Lesenswert?

Integers können doch kein Vorzeichen haben. Wertebereich ist doch 
0...65535 ?
Oder ?

von MWS (Gast)


Lesenswert?

Words haben keine, Integer schon.

von Herr_Mann (Gast)


Lesenswert?

@rolf:
Danke für den tipp, wenn beide Singles sind, geht es.
Ich frage mich allerdings arg, warum... Integers und Longs haben ja auch 
Vorzeichen.

Ansonsten Danke für das rege Interesse!!!

Ja, die Signum-Funktion, einfach aber oho!
;)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.