Forum: Compiler & IDEs Problem mit folgender berechnung


von wagner (Gast)


Lesenswert?

Habe ein problem

Ich möchte die Windgeschwindigkeit meines Windmessers messen auf basis 
von Impulsen und deren diffenz.


Ich habe einen Mega 8 mit 8Mhz

Timer1 mit 16bit und prescaler =1.

das bedeutet das er pro sekunde 122 überläufe produziert.

in diesen timer überprüfe ich ob der reed geschlossen ist und auch 
wieder öffnet wenn ja dann start bis zum nächsetn schließen = stopp.

um die umlauffrequenz zu erhalten rechne ich


1/differenz*1sec/122überläufe

die differenz beträgt bei langsamen drehungen ca 109 das entspricht fast 
eine umdrehung / sec.

Die umlauffrequenz beträgt demnach 1,1Hz.

um die geschwindigkeit zu berechnen muß ich nach der Formel


V=2*pi*r*f berechnen


in c habe ich es so gemacht
diff ist auch ein int.

int v=2*3.14159265 *0.065 * (1/(diff*1/122)):

v ist -1 das ist doch falsch:

kann mir einer veraten was ich falsch mache???

Danke

von holger (Gast)


Lesenswert?

>int v=2*3.14159265 *0.065 * (1/(diff*1/122)):

float v=2.0*3.14159265 *0.065 * (1.0/((float)diff*1.0/122.0)):

von wagner (Gast)


Lesenswert?

wie kann ich den float darstellen als integer sbekomme ich minus und 
plus werte im 5 stelligen bereich.

wo weiß ich wo das komma ist??:

von holger (Gast)


Lesenswert?

>wo weiß ich wo das komma ist??:

integer haben keine Kommas.
integer sind Ganzzahlen.
1,2,3,4,5..-1,-2,-3

Nachkommastellen gibt es bei integer nicht.

von wagner (Gast)


Lesenswert?

das Problem ist erledigt habe es in ein integer umgewandelt und bekomme 
jetzt die ganz Zahl.


z.b float 123.123 jetzt nur noch 123 für die Windgeschwindigkeit reichen 
ganz zahlen.

Danke

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.