Forum: Mikrocontroller und Digitale Elektronik Kurze Frage zur Prozentrechnung in Bascom


von Thomas Kiss (Gast)


Lesenswert?

Hallo Jungs mal ne kleine Frage :

Ich habe eine maximale PWM Wert von 255, diese Wert soll auf dem LCD als 
100%
erscheinen wie rechne ich es aus ? Also brauche ich eine Ganzzahl.

Wenn ich folgendes nehme

R=255/2.5 dann klar bekomme ich ich krumme Werte ich würde gerne die 
zahlen runden aber wie ?

Hintergrung bei einem RGB Fader möchte ich die helligkeit als Prozent 
Anzeige auf einem LCD Display darstellen...

Der rest ist klar..

von H.Joachim S. (crazyhorse)


Lesenswert?

*100
/255

von Thomas Kiss (Gast)


Lesenswert?

geht nicht Bsp :

178 * 100 = 17800 / 255 = 69,8 sollte aber 70 sein...

145 * 100 = 14500 / 255 = 56,8 sollte 57 sein

von spess53 (Gast)


Lesenswert?

Hi

Vorher aufrunden:

((178 * 100) +127)/ 255

MfG Spess

von Thomas Kiss (Gast)


Lesenswert?

Kann ich es gleich so in Bascom einsetzen ? ( kann gerade nicht 
probieren)

R_temp=((R*100=+127)/255

R ist PWM wert
R-temp ist für die Anzeige

PS: fehlt nicht ein Klammer ?

von Karl H. (kbuchegg)


Lesenswert?

Thomas Kiss schrieb:
> Kann ich es gleich so in Bascom einsetzen ? ( kann gerade nicht
> probieren)
>
> R_temp=((R*100=+127)/255

Nein.
BASCOM kann nicht mit derart 'komplexen' Ausdrücken umgehen.
Aufbrechen in Einzelteile.

> PS: fehlt nicht ein Klammer ?
SChau mal auf deine Tastatur. Welche Zeichen liegt auf der Shift-Ebene 
direkt neben der Taste mit dem '='?

von Thomas Kiss (Gast)


Lesenswert?

Dachte ich mir....aber ich kriegs glaube hin...

Tja Tastatur , habe keine deutsche...

von Karl H. (kbuchegg)


Lesenswert?

Thomas Kiss schrieb:
> Dachte ich mir....aber ich kriegs glaube hin...
>
> Tja Tastatur , habe keine deutsche...

Mein Fehler. Ich vergass.
Ungar?

von Karl (Gast)


Lesenswert?

var=x/255
var=100*var
var=ROUND(var)

ginge wahrscheinlich auch

von Karl H. (kbuchegg)


Lesenswert?

Karl schrieb:
> var=x/255
> var=100*var
> var=ROUND(var)
>
> ginge wahrscheinlich auch

keine gute Idee.
Erst Multiplizeren, dann Dividieren.
Beim Dividieren gehen dir die Kommastellen verloren.

von Thomas Kiss (Gast)


Lesenswert?

Wo ist der Hund begraben ?

Ein Auszug aus dem Programm :

Dim Sr As Long

Sr = R_temp * 100
Sr = Sr / 255
Sr = Round(sr)

Ich kriege folgende Fehlermeldung :

Integer or Long expected for abs()

PS: Gleiche Fehlermeldung ob ich

Dim sr as Long oder
Dim sr as Intger nehmen..verstehe ich nicht !!!

Das Problem liegt an
sr=Round(Sr)

von Karl (Gast)


Lesenswert?

Ganz einfach, ROUND erwartet Single oder Double.

von Thomas Kiss (Gast)


Lesenswert?

So scheint es zu klappen : Werden 3 Stellen ausgegeben wie ich wollte

Sr = R_temp * 100
Sr = Sr / 255


'LCD Ausgabe
S1 = Str(sr)
S1 = Format(s1 , "000")

Locate 1 , 6
Lcd "R:" ; S1

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.