mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik E Funktion und Ln Funktion bei C167?!?


Autor: Baggacfreak Baggacfreak (baggacfreaks)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!

Autor: High Performer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Gibt es für den C167 mit dem Keil Compiler überhaupt die math.h

Die Antwort müsste im Verzeichniss Keil..../inc/..  stehen!

Autor: Microman (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: sous (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Schoasch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: baggacfreaks (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.