mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik logarithmus (log)


Autor: Alain F. (fox82)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ahoi!

Wollte fragen, ob es eine LOG-Funktion gibt?

Möchte mir den Taupunkt aus relative Luftfeuchtigkeit und der Temperatur 
berechnen: http://www.wettermail.de/wetter/feuchte.html
Taupunkt = log (10);

char char_Taupunkt[20]; // in diesem {} lokal

itoa( Taupunkt, char_Taupunkt, 10 ); 
display_ptext( char_Taupunkt,3,0);

Das wird zwar vom AVR-Studio akzeptiert aber das Resultat wird falsch 
angezeigt. Log(10) = 1 angezeigt 2.

Autor: Arc Net (arc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
log berechnet in C den natürlichen Logarithmus, nicht den zur Basis 10.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alain Fuchs wrote:
> Das wird zwar vom AVR-Studio akzeptiert aber das Resultat wird falsch
> angezeigt.

Nö, das Ergebnis passt.

> Log(10) = 1

Nein, log(10)=2,3025850929940456840179914546844

> angezeigt 2.

Da du ein int verwendest.

Du suchst wohl eher log10(10)=1,000
log() ist der natürliche Logarithmus, log10() ist der 10er.

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
versuch's mal mit "log10()" und float-Zahlen.

Autor: Alain F. (fox82)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Danke für die Antworten



>Nein, log(10)=2,3025850929940456840179914546844

ln = Logarithmus Naturalis = Jap das stimmt aber nicht mit Basis 10.

Habe jetzt gemacht:


Taupunkt = log10 (1000);

Das gibt mir 3

Jetzt stimmts!!!

Danke vielmals

Autor: Alain F. (fox82)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nochmals eine Frage:

Wenn ich den Wert habe 6.1078 * Etwas muss ich danach alles 10000 mal 
höher rechnen oder gibt es eine Kommafunktion?

Und 10^2 gibt nicht 100 sondern 8???

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alain Fuchs wrote:

> Und 10^2 gibt nicht 100 sondern 8???

Stimmt doch:
10 == 0b1010
 2 == 0b0010
XOR  -------
 8 == 0b1000

^ ist in C XOR, nicht Hoch. siehe dazu: "pow()"

Autor: Alain F. (fox82)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>siehe dazu: "pow()"

Ohhhh!!!

Taupunkt = pow(10,2);

= 100

:-) :-)

Jetzt ist nur noch die Frage mit dem Float offen.

Rechne es bis jetzt immer mit ganzen Zahlen und sitofix.

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.