Hi, ich bräuchte sowohl die E Funktion, als auch deren Gegenspieler Ln. Gibt es für den C167 mit dem Keil Compiler überhaupt die math.h zum Einbinden? Oder muss man sich die Funktionen selber programmieren? Außerdem würde mich interessieren wie Float bei diesem Prozessor umgesetz wird. Intern arbeitet er ja nur mit integer Werten! CU!
> Gibt es für den C167 mit dem Keil Compiler überhaupt die math.h
Die Antwort müsste im Verzeichniss Keil..../inc/.. stehen!
Hallo Andreas, soweit ich weiss wird der Datentyp "float" über Integer emuliert, was aber ein größerer Aufwand ist und wir deshalb wenn es geht darauf verzichten, bis jetzt erfolgreich ;-). Microman
Hallo Andreas! Wie Microman schon meinte, float nach Möglichkeiten vermeiden. Sollte dann uVision dennoch keine ln oder exp-Funktionen anbieten, dann musst Du diese selber z.B. über Reihenentwicklungen umsetzen. Gruß, Rainer
Ich selbst habe schon Software für den C167 gebaut, die mit float und double gerechnet hat (Transzendente Funktionen a la 'e' und 'ln' inklusive). Das ging gut. Wir haben damals den Tasking-Compiler benutzt, ich wage aber zu behaupten, dass jeder anständige Compiler eine Library im Schlepptau hat, die float/double & co unterstützt. Sowas geht schließlich sogar auf dem AVR (8-bit-Controller). Ich kenne Keil nur aus Prospekten (immer, wenn ich den Preis sehe, ist die Durchsicht für mich beendet :) ), kann mir aber nicht vorstellen, dass ein so teueres Werkzeug etwas so elementares nicht unterstützt.
Hast du es schon mal mit der math.h probiert? Da wirst du wunderschöne funktionen finden ;-) extern float exp (float val); extern float log (float val); extern float log10 (float val); Und eine float.h gibts auch noch. Schau doch einfach einmal etwas im inc-Ordner deiner Installation herum.
Hast Du die Vollversion von µVision? Wenn nicht, dann gibt das mit float eh nix. Fließkomma-Arithmetik wird afaik nur von der Vollversion unterstützt.
von der Keil HP: C166 Evaluation Tools You may not use the Evaluation Version of the µVision IDE/Debugger to create commercial products. The C166 compiler, assembler, and linker are limited to 4K Bytes of object code. Source code may be of any size. Programs that generate more than 4K Bytes of object code will not compile, assemble, or link. The debugger supports programs that are 8K Bytes or smaller. da steht nix von Einschränkungen bei Float nur der C51 Compiler kann in der Eval Version kein Float Thomas
Hi, naja in der Schule haben wir Vollversion und ich hab inzwischen eine andere Lösung gefunden. Konnte mit Parallelwiderstand die Kurve fast zu einer Gerade bringen. Daher kann ich die Funktionen umgehen. Ob nun Float oder nich sind unsere Lehrer sich nicht ganz einig. Fakt ist, dass der Lehrer, der für die Programmierennote zuständig ist, nix gegen Float hat. Das Problem ist mir aber bekannt und das is denke ich wichtiger. MfG, sorry find mein Passwort grad nich! P.S.: Wie könnte man die Funktionen mit Integer annähern?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.