C: Problem durch Rundungsfehler bei Skalierung

Gast #3376341
Lesenswert?
• ▲
▼
Der Timerwert "hell" (0...1250) eines Phasenanschnittdimmers soll auf 
eine prozentuale Helligkeit gemappt werden (100..0%), die Wandlung 
erfolgt bislang so:
1
int hell =  ((100-proz)* 125)/10 );
2
int proz = 100 - ((hell* 10) / 125);

Um 1% heller zu werden, wird proz ermittelt, erhöht, und 
zurückgewandelt. Das geht auch. Aber "proz--" verändert "hell" auf 
diesem Weg nicht.

Was mache ich falsch?

(TI Compiler für MSP430)

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.