Étape 10 : Code pour la version 2
La façon la plus simple de se débarrasser du bouton est juste pour l’enlever complètement, oubliez l’entrée à PB2 et viens de passer l’ADC en « Mode libre de courir ».
En d’autres termes, simplement modifier le registre ADCSRB afin que ADTS2, ADTS1 et ADTS0 sont tous les zéros.
Puis définissez le bit ADSC dans ADCSRA 1 qui va commencer la première conversion.
Téléchargez-la maintenant pour votre microcontrôleur, et vous trouverez que le nombre correct apparaît sur l’afficheur tandis que vous appuyez sur le bouton et aussi longtemps que vous appuyez sur le bouton. C’est parce que l’ADC est continuellement d’échantillonnage le port ADC0 et affichage de la valeur. Lorsque vous prenez votre doigt sur le bouton, rebond"bouton" causera quelques valeurs aléatoires se produisent très rapidement et ensuite il s’affaissera retour à 0V entrée. Dans notre code, nous avons cette 0V apparaissant comme 0b11011011 (car la pression de la touche « 0 » utilise déjà la valeur d’affichage de 0b00000000)
Ce n’est pas la solution que nous voulons mais pour deux raisons. Tout d’abord, nous ne voulons pas avoir à appuyer sur le bouton. Nous voulons appuyer une fois sur elle et ont le numéro affiché (ou utilisé dans un nouveau code dans un prochain didacticiel). Deuxièmement, nous ne voulons pas goûter sans cesse le ADC0. Nous voulons pour prendre une lecture unique, convertir et puis dormir jusqu'à ce que la pression d’une touche nouvelle déclenche une nouvelle conversion. Gratuite en cours d’exécution mode est meilleur si la seule chose que vous voulez le microcontrôleur à faire est lire continuellement des entrées analogiques--comme si vous vouliez afficher les températures en temps réel ou quelque chose.
Nous allons donc trouver une autre solution...