Tu approximes.
Par exemple, tu as 1 interruption toutes les 1/8192 secondes, c'est-à-dire 0,122 ms. Tu veux obtenir un LA de 440 Hz, c'est-à-dire de demi-période 1/880 secondes, c'est-à-dire 1,136 ms.
Donc:
1ère interruption: on est à 0, il reste 1,136 ms
2ème interruption: on est à 0, il reste 1,014 ms
3ème interruption: on est à 0, il reste 0,892 ms
4ème interruption: on est à 0, il reste 0,770 ms
5ème interruption: on est à 0, il reste 0,648 ms
6ème interruption: on est à 0, il reste 0,526 ms
7ème interruption: on est à 0, il reste 0,404 ms
8ème interruption: on est à 0, il reste 0,282 ms
9ème interruption: on est à 0, il reste 0,160 ms
10ème interruption: on est à 0, il reste 0,034 ms. Hop, c'est moins de 0,122/2=0,061 ms, donc on passe à 1. Il reste donc 1,136+0,034=1,170 ms.
11ème interruption: on est à 1, il reste 1,048 ms
12ème interruption: on est à 1, il reste 0,926 ms
13ème interruption: on est à 1, il reste 0,804 ms
14ème interruption: on est à 1, il reste 0,682 ms
15ème interruption: on est à 1, il reste 0,560 ms
16ème interruption: on est à 1, il reste 0,438 ms
17ème interruption: on est à 1, il reste 0,316 ms
18ème interruption: on est à 1, il reste 0,194 ms
19ème interruption: on est à 1, il reste 0,072 ms
20ème interruption: on est à 1, il reste -0,050 ms. Hop, c'est moins de 0,122/2=0,061 ms, donc on passe à 0. Il reste donc 1,136-0,050=1,086 ms.
21ème interruption: on est à 0, il reste 0,964 ms
etc.
