Forum: PC-Programmierung 100% bis 0% invertieren zu 0% bis 100% - Denkblockade


von Komm nicht drauf (Gast)


Lesenswert?

Hi,

ich hab hier ein Programm, bei dem ein Motor geregelt wird. Der Regler 
liefert dummerweise bei 0% volle Leistung und bei 100% nix.
Jetzt würd ich den Eingabebereich für den User gern logisch machen und 
müsste aus
100% zu 0%
0% zu 100%
40% zu 60%
usw. machen. Aber ich komm nicht drauf.

Ernsthaft! Wahrscheinlich ein Klacks, aber weiß das wer?

von Programmierer (Gast)


Lesenswert?

1
100-x

von Jln (Gast)


Lesenswert?

Indem du das Signal invertierst. High zu low. Wie auch immer genau dein 
Signal aussehen mag, denn das verrätst du uns ja nicht

von Rainer S. (enevile) Benutzerseite


Lesenswert?

Im Programm den Wert invertieren?

von Komm nicht drauf (Gast)


Lesenswert?

Natürlich... brauch einen Kaffee... dringend.

Danke!

von 🐧 DPA 🐧 (Gast)


Lesenswert?

Mehrere Tage Schlaflos können tödlich sein. Du hattest genug Kaffee.

von Jens M. (schuchkleisser)


Lesenswert?

1
x=abs(y * -1);
oder
1
void Invert(unsigned char in) {
2
  select in
3
    case 0:
4
      return 100;
5
      break;
6
    case 1:
7
      return 99;
8
      break;
9
....
10
....
11
....
12
....
13
    case 99:
14
      return 1;
15
      break;
16
    case 100:
17
      return 0;
18
      break;
19
  end select
20
}

Weiß noch einer gute einfache verständliche Funktionen die das machen 
könnten?

: Bearbeitet durch User
von Max B. (citgo)


Lesenswert?

Jens M. schrieb:
> Weiß noch einer gute einfache verständliche Funktionen die das machen
> könnten?

Ja, 100-x
Wurde aber schon genannt.
Deine Methode ist gegen den Einzeiler aber ziemlich umständlich.
Und was soll "x=abs(y * -1)" machen?

von Jens M. (schuchkleisser)


Lesenswert?

Das sind patentierte Formeln für diese Aufgabe aus dem Buch "Rube 
Goldbergs extremely reliable and specific Algortithms for every 
situation", ISBN 47-0815-11-0104

Max B. schrieb:
> Und was soll "x=abs(y * -1)" machen?

Oh, ein Abtippfehler, ich "x=abs((x * -1) +100)".

von Klaro (Gast)


Lesenswert?

1
y = (10-sqrt(x))*(10+sqrt(x))

von rbx (Gast)


Lesenswert?

Komm nicht drauf schrieb:
> Jetzt würd ich den Eingabebereich für den User gern logisch machen

Hilfe..

von Bierbaron (Gast)


Lesenswert?

ach du scheiße Jens....

von M. P. (phpmysqlfreak)


Lesenswert?

Oder ganz ohne Programmieren:
Tausche die Beschriftung von "Motorleistung" in "Bremsleistung"

von Jens M. (schuchkleisser)


Lesenswert?

M. P. schrieb:
> Tausche die Beschriftung von "Motorleistung" in "Bremsleistung"

Viele Heizungspumpen machen das auch so: ohne PWM (oder unter 10%) = 
Vollgas, 100% = Stillstand.
Müssen die das Wasser auch bremsen? ;)

Wenn, dann sollte auf dem Schild "Motorleistungsreduktion" stehen, oder?

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.