Forum: Compiler & IDEs Frage zur pow()


von AtotheW (Gast)


Lesenswert?

Hallo zusammen,

kann mir vielleicht jemand von euch erklären warum mein Kompiler bei 
folgendem Codeausschnitt immer einen Fehler bringt.

Ich verwende AVR Studio.

   uint8_t tmp = 0;
   uint16_t white = 0;

 while (1)
 {

  white = floor(65535.0 * (pow((tmp/255.0) , 2.2)) + 0.5);

  tmp++;

 }

Er bringt mir auch nur eine Fehlermeldung wenn ich die Variable tmp 
inkrementiere.

Vielen Dank im Voraus

Gruß

von Peter II (Gast)


Lesenswert?

AtotheW schrieb:
> immer einen Fehler bringt.

sollen wir jetzt Raten was das für ein Fehler sein könnte?

von Floh (Gast)


Lesenswert?

AtotheW schrieb:
> Er bringt mir auch nur eine Fehlermeldung wenn ich die Variable tmp
> inkrementiere.

Was für eine Fehlermeldung?

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Du musst den Code in eine Funktion schreiben.

von ... (Gast)


Lesenswert?

Wozu immer diese bekloppten Doppelpost?
http://www.mikrocontroller.net/topic/222853

von Yalu X. (yalu) (Moderator)


Lesenswert?

... schrieb:
> Wozu immer diese bekloppten Doppelpost?

Hab den anderen gesperrt.

von Oli-997 (Gast)


Lesenswert?

Die Funktion pow() erwartet als erstes Argument eine Zahl größer Null.

So sollte es gehen:
1
if ( tmp == 0 )
2
  white = 0;
3
else
4
  white = floor(65535.0 * (pow((tmp/255.0) , 2.2)) + 0.5);

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.