Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Frequenz aus Timer-Intervall berechnen (https://www.delphipraxis.net/67213-frequenz-aus-timer-intervall-berechnen.html)

win_tho 11. Apr 2006 10:50


Frequenz aus Timer-Intervall berechnen
 
Hallo,

für viele wahrscheinlich das einfachste der Welt, ich verzweifele aber gerade daran.

Möchte aus dem Intervall eines Timers die Frequenz(in Hz) berechnen. Habe mir folgendes ausgedacht:

Label62.Caption:=floattostr(1 div (Timer3.Interval div 1000))+' Hz';

Rein mathematisch stimmt diese Rechnung, nur mit den Variablentypen scheint etwas faus zu sein, da ich immer div. by Zero erhalte.

Was habe ich vergessen?

TheAn00bis 11. Apr 2006 10:52

Re: Frequenz aus Timer-Intervall berechnen
 
Div gibt dir den ganzzahligen Rest.
Du müsstest das / benutzen.

Fuchtel 11. Apr 2006 10:55

Re: Frequenz aus Timer-Intervall berechnen
 
Hallo,

deswegen kann trotzdem ein div by Ziro auftreten.

Delphi-Quellcode:
If Timer3.Interval <> 0 then
    Label62.Caption:=floattostr(1 / (Timer3.Interval / 1000))+' Hz'
  else
    Label62.Caption:='0 Hz';
Gruß Fuchtel

Kroko1999 11. Apr 2006 10:57

Re: Frequenz aus Timer-Intervall berechnen
 
Zitat:

Zitat von TheAn00bis
Div gibt dir den ganzzahligen Rest.
Du müsstest das / benutzen.

DIV gibt den ganzzahligen Quotienten
MOD gitb den ganzzahligen Rest

@win_tho: Benutze mal / statt div

win_tho 11. Apr 2006 11:00

Re: Frequenz aus Timer-Intervall berechnen
 
Mit / geht es so, wie ich wollte. Muss jetzt nur noch was zum runden einbauen.

In meinem Fall hat jeder Timer mindestens einen Intervall von 100, daher ist die Gefahr von div zero nicht so groß. Aber trotzdem danke für den Tipp. Gleich für die Zukunft merken :)

win_tho 11. Apr 2006 11:15

Re: Frequenz aus Timer-Intervall berechnen
 
wollte jetzt mit roundto() auf 2 Nachkommastellen runden. Er gibt aber immer nur "0 Hz" aus. Was ist falsch?

Delphi-Quellcode:
Label62.Caption:=floattostr(roundto(1 / (Timer3.Interval / 1000),2))+' Hz';

Hawkeye219 11. Apr 2006 11:23

Re: Frequenz aus Timer-Intervall berechnen
 
Nimm mal "-2"...

Gruß Hawkeye

Fuchtel 11. Apr 2006 11:24

Re: Frequenz aus Timer-Intervall berechnen
 
Hallo,

denn Du willst ja die Nachkommastellen runden :

Delphi-Quellcode:
Label62.Caption:=floattostr(roundto(1 / (Timer3.Interval / 1000), -2))+' Hz';
Gruß Fuchtel

mbamler 11. Apr 2006 11:45

Re: Frequenz aus Timer-Intervall berechnen
 
Zitat:

Zitat von win_tho
Hallo,

für viele wahrscheinlich das einfachste der Welt, ich verzweifele aber gerade daran.

Möchte aus dem Intervall eines Timers die Frequenz(in Hz) berechnen. Habe mir folgendes ausgedacht:

Label62.Caption:=floattostr(1 div (Timer3.Interval div 1000))+' Hz';

Rein mathematisch stimmt diese Rechnung, nur mit den Variablentypen scheint etwas faus zu sein, da ich immer div. by Zero erhalte.

Was habe ich vergessen?



Der Wert, der in Intervall steht IST die Frequenz !!! (Das muss nichts berechnet werden)
Gruß
Matthias

mbamler 11. Apr 2006 11:47

Re: Frequenz aus Timer-Intervall berechnen
 
Zitat:

Zitat von mbamler
Zitat:

Zitat von win_tho
Hallo,

für viele wahrscheinlich das einfachste der Welt, ich verzweifele aber gerade daran.

Möchte aus dem Intervall eines Timers die Frequenz(in Hz) berechnen. Habe mir folgendes ausgedacht:

Label62.Caption:=floattostr(1 div (Timer3.Interval div 1000))+' Hz';

Rein mathematisch stimmt diese Rechnung, nur mit den Variablentypen scheint etwas faus zu sein, da ich immer div. by Zero erhalte.

Was habe ich vergessen?



Der Wert, der in Intervall steht IST die Frequenz !!! (Das muss nichts berechnet werden)
Gruß
Matthias

Vergiss es - ich habe mich geirrt (lessen können hilft ungemein)


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:21 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz