Étape 3: Une parenthèse mineure sur le débogage.
Si vous êtes comme moi (et tous les autres programmeurs dans le monde) vous avez probablement rencontré des moments où le code « sans erreur » vous avez soigneusement tapé et compilé n’est pas faire ce que vous attendez qu’il fasse. Peut-être qu’il fait tout simplement rien ! Alors, quel est le problème ? Comment allez-vous découvrir ?Heureusement, il existe plusieurs approches pour obtenir des choses à travailler. (Téléchargez ce livre pour un excellent traitement du thème de débogage. http://www.debuggingrules.com/) Je tiens à offrir quelques suggestions simples se rapportant au thème de débogage des applications de microcontrôleur.
La première étape consiste à s’appuyer sur ce que vous savez. Si vous avez obtenu un blinkenlight pour travailler une fois, puis utiliser à nouveau pour voir où vous vous trouvez dans votre programme. J’aime avoir la LED clignote deux fois pour marquer le début du programme. Vous pouvez mettre le code dans du pour faire au départ au début de votre programme. Une fois que vous savez que tout va bien avec votre matériel, créez une fonction pour faire le clignotement. Voici la fonction que j’utilise.
/*------------------------------------------------------------------------
** blinkEm - fonction à clignoter la LED à l’aide de PD4
** PD4 doit être configuré en tant que sortie.
** ---------------------------------------------------------------------*/
void blinkEm (comte uint8_t) {}
tandis que (count > 0) {}
PORTD = _BV(PD4) ;
_delay_ms(1000) ;
PORTD = ~ _BV(PD4) ;
_delay_ms(1000) ;
comte--;
}
}
Il est maintenant possible d’utiliser cette fonction à divers endroits dans votre code comme un signal que l’exécution du code qui jusqu'à maintenant. Connaissant le code exécute les moyens que vous pouvez examiner soigneusement chaque section qui a exécuté, mais ne pas fait ce que vous attendiez, pour rechercher des erreurs.
Changer une chose à la fois est une technique clée pour le débogage également (décrite dans la référence ci-dessus). Cette méthode classique fonctionne avec « diviser et conquérir »: prendre des mesures de bébé pour ajouter des fonctionnalités de façon incrémentielle. Ceci peut sembler comme une approche lente, mais c’est pas presque aussi lent que d’essayer de déboguer une grande partie du code non-travaillant à la fois.