Wenn zwei zu Multiplizierende Variablen z.B. int-Typen sind, darf das Ergebnis auch maximal int sein. PRESCALER * Hz (256 * 440 = 112.640) übersteigt aber diese 16Bit vom Integer. Dein Compiler sollte deshalb auch die Warnung "integer overflow in expression" ausgeben.

Franzls Variante hingegen funktioniert einwandfrei, da es hierbei zu keinem Overflow kommen kann.

[edit]
Noch eine Alternative:
Wenn Du mindestens einen der beiden Makros/Variablen PRESACLER bzw. Hz als long-Datentypen deklarierst, klappts auch mit der Multiplikation.
[edit]

askazo