Forum: Mikrocontroller und Digitale Elektronik Baudrate berechnen im Compiler


von Baud (Gast)


Lesenswert?

moin,

#define BAUD      115200UL
#define CLK      750000UL

#define TEILER      (CLK/BAUD)UL  // soll sein 6


eine Frage:

Wird mir der compiler für den TEILER auf diese Weise "6" herausgeben, 
und die Nachkommastellen verwerfen?

mfg

von Karl H. (kbuchegg)


Lesenswert?

Baud schrieb:
> moin,
>
> #define BAUD      115200UL
> #define CLK      750000UL
>
> #define TEILER      (CLK/BAUD)UL  // soll sein 6
>
>
> eine Frage:
>
> Wird mir der compiler für den TEILER auf diese Weise "6" herausgeben,
> und die Nachkommastellen verwerfen?

Gegenfrage.
Was bringt dich zu der Annahme, dass da überhaupt Nachkommastellen 
berechnet werden? Alle Zutaten in dieser Berechnung sind Integer. Also 
wird das ganz auch mit Integer-Arithmetik gerechnet. Und da gibt es nun 
mal keine Kommastellen. Integer-Arithmetik funktioniert wie das Rechnen 
in der 3. Klasse Grundschule: Eine Mutter hat 14 Äpfel und 3 Kinder. 
Wieviele Äpfel kriegt jedes Kind und wieviele bleiben der Mutter übrig?

von Jean Player (Gast)


Lesenswert?

Ja

von Baud (Gast)


Lesenswert?

und um an die Nachkommastellen zu kommen muss ich nun erst mit X 
Multiplizieren und später durch X teilen bzw. X*TEILER subtrahieren?

von Karl H. (kbuchegg)


Lesenswert?

Baud schrieb:
> und um an die Nachkommastellen zu kommen muss ich nun erst mit X
> Multiplizieren und später durch X teilen bzw. X*TEILER subtrahieren?

Welchen Teil von

Solange alle beteiligten Operanden Integer sind, gibt es keine 
Nachkommastellen.

verstehst du nicht?

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.