Bonjour,
Je ne suis pas entré dans les détails du code, mais..
On doit toujours déclarer les variables utilisées dans une ISR "volatile" pour empêcher le compilateur d'optimiser le code en gardant si il peut, des variables dans les registres du µP. Ce qui peut avoir pour effet de perdre la valeur pendant une ISR.
Donc tu dois déclarer "volatile unsigned int ticksCodeur = 0;".
C'est une piste.