Falsches Ergebnis!

OP #2115653
Lesenswert?
• ▲
▼
Hallo Leute,

ich komme hier nicht ganz drauf warum das nicht funktioniert!!!

#define PWM_PERIOD 100
unsigned char intensity = 100; // Change 0 - 100

unsigned long tmp = PWM_PERIOD - ((intensity / 100)*PWM_PERIOD);


Warum kommt bei mir immer 0 oder 100 als Ergebnis raus? So wie ich die 
variable intensity auf 99 stelle liefert er mir das Ergebnis 100!


Anwendung findet das ganze bei der PWM Berechnung für das Dimmen einer 
LED. Schreibe ich die Werte 0-100 in das entsprechende register 
funktioniert das ganze toll. Jedoch nicht mit der oben gezeigten 
berechnung.
Gast #2115679
Lesenswert?
• ▲
▼
Florian Müller schrieb:
> Hallo Leute,
>
> ich komme hier nicht ganz drauf warum das nicht funktioniert!!!
>
> #define PWM_PERIOD 100
> unsigned char intensity = 100; // Change 0 - 100
>
> unsigned long tmp = PWM_PERIOD - ((intensity / 100)*PWM_PERIOD);
>
>
> Warum kommt bei mir immer 0 oder 100 als Ergebnis raus?

Was erwartest du denn für ein Ergebnis, wenn intensity z.B. 50 ist? Was 
ist 50/100? Beachte: Das Ergebnis muß eine ganze Zahl sein.
Gast #2115968
Lesenswert?
• ▲
▼
Solange intensity immer im Bereich 0 bis 100 bleibt und PWM_PERIOD nicht 
signifikant größer wird, ist das schon ok. Man muß nur bedenken, daß die 
Berechnung mit int durchgeführt wird, also je nach Prozessortyp evtl. 
nur mit 16 Bit.

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.