Stap 7: Vier schakelopties gebruiken
Als wij de akoestische controle uitvoeren, laten we verlengen onze hardware en software om vier schakelopties. Aangezien de uitvoer van Timer teller 0A op poort B, pin 2, kunnen niet we simpelweg hook-up meer switches sequentieel naar poort B. Een eenvoudige oplossing zou zijn om gebruik van de Port D, maar laten we het houden van die poort beschikbaar is voor andere functies (misschien een stappenmotor). Dus laten we aansluiten op de extra schakelaars aan PB3 en PB4.Het lezen van de schakelaars is meestal ongewijzigd. De mask-waarde wordt gewijzigd in 0x1B (00011011 binaire) naar masker bits 2 samen met 5, 6 en 7. Een verdere truc wordt gebruikt voor het maken van een 4-bits binair getal. Shift bits 3 en 4 rechts beet en combineer ze met bit 0 en 1 in een binair getal van 4 bits. Dit is standaard C-syntaxis voor verschuiven en combineren van bits, maar wellicht niet bekend voor de beginner.
but1a = (but1 & 0x03) | ((but1 & 0x18) >> 1); but1 heeft schakelaar lezing
In werking, zal het programma twee keer knipperen en piept tweemaal voor de initialisatie van het signaal. Op elk gewenst moment de schakelopties worden gewijzigd, het nummer zij vertegenwoordigen zal worden opgepiept. Wanneer de schakelopties niet veranderen, zal de LED knipperen.
Voor het uitvoeren van deze code, maak een nieuwe map (oproep het piept als je wilt) en het downloaden van de volgende C codebestand en makefile erin. Noem Makefile2.txt aan enkel Makefile. Met behulp van WinAVR, het programma compileren en laden in uw Attiny2313.