Das kann so nix werden. Erstmal was über Datentypen in C nachlesen!!
1 | void sleep ( uint8_t ms )
|
Erwartet 8-Bit Werte (1 Byte, 0-255)
1 | void melodie_spielen(float periode)
|
Hätte eigentlich gerne Fleißkommazahlen (4Byte...)
Ruft dann obige Funktion auf, die nur bis 255 funktioniert,
Ruft die Funktion mit einem 16-Bit (2 Byte) Ganzzahl-Wert auf, der
halbiert aber immer noch viel zu groß für sleep() wäre....
Dabei macht der Compiler munteres Byte-Raten und packt Dir die unteren 8
Bit des Wertes in den Übergabewert von sleep().