Étape 7: À l’aide de quatre commutateurs
Que nous implémentons le beeper, étendons nos matériels et logiciels pour gérer les quatre interrupteurs. Depuis la sortie du compteur Timer 0 a est sur le Port B, broche 2, nous ne pouvons pas simplement brancher plus de commutateurs séquentiellement au Port B. Une solution simple serait d’utiliser le Port D, mais gardons ce port disponible pour d’autres fonctions (peut-être un moteur pas à pas). Nous allons donc raccorder les commutateurs supplémentaires à PB3 et PB4.Les commutateurs de lecture est le plus souvent inchangée. La valeur du masque est changée à 0x1B (00011011 binaire) au bit de masque 2 ainsi que les 5, 6 et 7. Un autre truc est utilisé pour créer un nombre binaire de 4 bits. Décalage de bits 3 et 4 un bit à droite et les combinent avec les bits 0 et 1 en un nombre binaire de 4 bits. C’est standard syntaxe C pour le déplacement et en combinant des morceaux, mais peut ne pas être bien connu pour le novice.
but1a = (but1 & 0 x 03) | ((But1 & 0x18) >> 1) ; But1 a commutateur lecture
En fonctionnement, le programme clignotent deux fois et un bip deux fois au signal d’initialisation. Chaque fois que les interrupteurs sont modifiées, le nombre qu’ils représentent volonté être fait bip-bip. Lorsque les commutateurs ne sont pas modifiées, la LED clignote.
Pour exécuter ce code, créez un nouveau répertoire (appel il bip si vous le souhaitez) et téléchargez le fichier suivant de code C et makefile dedans. Renommez Makefile2.txt en juste Makefile. À l’aide de WinAVR, compiler le programme et le charger dans votre Attiny2313.