Commutateurs de lecture avec ATtiny2313 (3 / 9 étapes)

É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.

Articles Liés

APR9600 Enregistrement vocal et système de lecture avec JRC286D puce ICStation Mega 2560 Compatible Arduino

APR9600 Enregistrement vocal et système de lecture avec JRC286D puce ICStation Mega 2560 Compatible Arduino

L'équipe ICStation vous présenter ce système lecture et enregistrement de voix de APR9600 utilisé dans ascenseur basé sur le ICStation Mega2560 compatible avec Arduino. Il utilise une tension DC5V pour travailler. Lorsque vous appuyez sur les touches
Commute sur BART avec votre moto comme un BOSS

Commute sur BART avec votre moto comme un BOSS

Vous pouvez commute sur la baie de San Francisco sur la Bay Area Rapid Transit (BART), notre système de train léger sur rail pour la plupart-fabuleux. Les cyclistes sont chanceux que les vélos sont autorisés sur les voitures ; ce n'était pas toujours
Comment faire une bague de lecture avec Sugru

Comment faire une bague de lecture avec Sugru

Hi.  Cette instructable a été créée à Madrid Makespace au cours de l'atelier de nuit de Sugru.Cet appareil vous aidera à tenir un livre tout en lisant avec une main tout en portant à l'arrière. Cela peut déjà être fait, mais c'est fatiguant de garder
Fichiers audio décompression et la lecture avec Arduino nu (sans protections)

Fichiers audio décompression et la lecture avec Arduino nu (sans protections)

L'idée est tout au sujet représentant chaque échantillon comme 2 bits au lieu de 8 bits, donc permet d'économiser 75 % de la taille du fichier audio qui est déjà un taux d'échantillon réduit. Le résultat prendrait 2 Ko de mémoire flash de l'Arduino (
Protection universelle (vol) pour les équipements électroniques ou les voitures avec interrupteur invisible

Protection universelle (vol) pour les équipements électroniques ou les voitures avec interrupteur invisible

je vais vous montrer comment vous pouvez utiliser un interrupteur reed comme une protection universelle pour appareils électroniques ou les voitures. Tout ce dont vous avez besoin est un commutateur à lames et un aimant. Pour les voitures vous aurez
Commande de commutateur de l’AC avec Opto Triac

Commande de commutateur de l’AC avec Opto Triac

Interrupteurs à courant alternatif sont des dispositifs de silicium qui contrôlent des charges ca directement connectés à l'alimentation secteur. Cela signifie que la borne de référence conduite du commutateur AC peut être connectée au potentiel de l
Arduino - mercure Commutateur alarme d’inclinaison avec le jeu de KY-027

Arduino - mercure Commutateur alarme d’inclinaison avec le jeu de KY-027

Salut tout le monde! Aujourd'hui, j'ai fait un exemple sur ce que vous pouviez pour avec le commutateur de mercure. Également connu sous le nom la tasse Magic Light dans le monde de l'arduino (toujours pas sûr pourquoi ils appellent ça) toute façon,
Amusez-vous avec PIC Assembly - épisode 23

Amusez-vous avec PIC Assembly - épisode 23

Comme j'ai mentionné dans les épisodes précédents, je suis bénévole au centre de recyclage local à but non lucratif. Certains des trucs électronique qui obtient déposa de genre de fait me sentent comme un archéologue de la technologie et j'ai un fant
Construire un Tricoptère avec Rotor Bits

Construire un Tricoptère avec Rotor Bits

Ce Instructable va vous apprendre comment construire un Tricoptère avec des morceaux de Rotor. Ce Instructable contient également des débats théoriques, des trucs, des astuces, et autres informations qui je l'espère, vont aurez bien sur votre chemin
Faire votre propre thermostat programmable pour $66 avec Arduino

Faire votre propre thermostat programmable pour $66 avec Arduino

Ce projet va vous montrer comment vous pouvez créer votre propre thermostat programmable avec sonde de température, un affichage LED et la possibilité de prises de contrôle à distance.Le cœur de ce projet est en fait un pilote pour un affichage de 4
AVENTURE-AMA-STRING ultime mise à jour : MOTION SENSOR & TIMER a CAT tour il ON et OFF à l’aide de courant alternatif (sans piles) avec NO HUMAN INPUT

AVENTURE-AMA-STRING ultime mise à jour : MOTION SENSOR & TIMER a CAT tour il ON et OFF à l’aide de courant alternatif (sans piles) avec NO HUMAN INPUT

quelques semaines je suis tombé sur la Fling-ama-String Upgrade 2.0 un chat jouet amélioré sur instructable qui est fantastique et a des mesures pour améliorer le jouet pour chat Fling-AMA-chaîne a un timer et plus grandes piles de taille D.Depuis qu
Commutateur Mode Altoids iPOD chargeur à l’aide de 3 piles « AA »

Commutateur Mode Altoids iPOD chargeur à l’aide de 3 piles « AA »

le but de ce projet consistait à construire un chargeur d'iPod étain (firewire) Altoids efficace qui fonctionne sur 3 piles « AA » (rechargeables). Ce projet a commencé comme un effort de collaboration avec Sky sur la conception et la construction et
Comment faire pour lire binaire/hexadécimal molette avec un microcontrôleur AVR

Comment faire pour lire binaire/hexadécimal molette avec un microcontrôleur AVR

cette instructable va vous montrer comment lire le numéro sur un pushwheel binaire ou molette commutateur à l'aide de LED ou un microcontrôleur AVR (j'utilise un ATmega328p mais cela peut être adapté à n'importe quel AVR ou probablement un autre micr
Capacimètre avec arduino et 741 ampli-op

Capacimètre avec arduino et 741 ampli-op

Ce projet comprend la conception et la construction d'un capacimètre simple capable de mesurer des condensateurs dans le domaine d'environ 20 picoF à des centaines de microF.Cela peut être un outil très utile lors de la vérification de nos condensate