Petit jeu avec Stepper.cpp, bonus

Je ne pensais pas trouver encore un problème, mais j'ai relu le code dernièrement. Celui ci est plus mystérieux pour moi, je n'ai pas encore tout compris. J'ai l'impression d'une erreur de la bibliothèque qui se compense parfais par une erreur du compilateur...

Je voudrai faire tourner le moteur en "arrière" le plus longtemps possible, et j'ai donc écrit le programme:


const int UN_TOUR = 2048;

Stepper moteur = Stepper(UN_TOUR, A3, A1, A0, A2);

void setup()
{
  moteur.setSpeed(10); // 10tr/mn
}

void loop()
{
  moteur.step(-32768); // Environ 30 tours en une fois
}

Mon moteur ne tourne pas du tout. J'arrive à comprendre pourquoi (forcément, j'ai trouvé ce "bug" en lisant le code. Mais si je fais:

#include "Stepper.h"

const int UN_TOUR = 2048;

Stepper moteur = Stepper(UN_TOUR, A3, A1, A0, A2);

void setup()
{
  moteur.setSpeed(10); // 10tr/mn
}

void loop()
{
  moteur.step(327); // Environ 1/3 tour
  moteur.step(-32768); // Environ 30 tours en une fois
}

Le moteur avance bien d'1/3 tour puis recule d'environ 30 tours, en boucle, ce qui cette fois ci correspond bien à ce que je demande.

question: Y a-t-il un bug ou deux? Comment le savoir? Comment le signaler?