Forum: Compiler & IDEs problem mit rechnung


von puma5 (Gast)


Lesenswert?

Hallo habe ein Problem mit einer rechnung.
möchte mir eine frequenz berechnen.
die werte die ich übergebe overflow und tcnt0 stimmen.
Komme aber immer auf das falsche Ergebnis.
Das Ergebnis würde mir als Ganzzahl reichen.
Muß ich in float rechnen?
wie kann man das am günstigsten berechnen?
Danke schon ma mfg puma5

volatile uint8_t ovflow=0;
volatile uint8_t Ausgabe=0,i=0;

Ausgabe = SYSCLK/(1024*(256*ovflow + TCNT0)); /sysclk z.b. 1mhz
                                              /1024=Prescaler

von Karl H. (kbuchegg)


Lesenswert?

Wie ist SYSCLK definiert?

Bevor Du auf float gehst, probier mal ob long nicht
schon reichen wuerde.

Ausgabe = SYSCLK/(1024L*(256L*ovflow + TCNT0));

von puma5 (Gast)


Lesenswert?

Arbeite mit 14Mhz.
will mal freq. bis ca 8000Hz messen.

von Karl H. (kbuchegg)


Lesenswert?

Neun. Ich meine: Wie schaut die C Definition von SYSCLCK
aus?

Hoffentlich so

#define SYSCLK 1000000L

entscheidend ist das L da hinten.

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.