Skalor för folkdiktatur människor (4 / 6 steg)
Steg 4: Koden: läsa rotary encoder.
Om du tittar noga på diagrammet, kommer du se att när du slår rätt, B är alltid låg på stigande kanterna av A. På att vrida vänster B vara wil alltid högt på stigande kanterna på A.
Så om vi tillmäter INT0 A och ställa in den att utlösa ett avbrott på stigande kanten, kontrollerar sedan al vi behöver göra i rutinen avbrott om B är 0 eller 1 veta riktning. Beroende på riktningen, en räknare är är ökat eller minskat och den här räknaren kan sedan användas i huvudloop för att ange värden för en rad olika variabler. Det är verkligen så enkelt är det!
i Bascom kod:
Dim räknas som heltal
Ett Alias Pind.2 "(INT0)
B Alias Pind.4
config A som indata
config B som indata
Uppsättning B
Återställa räkningen
Config Int0 = stigande
På Int0 Getencoder
Aktivera avbrott
Aktivera Int0
göra
"huvudloop här
loop
Getencoder:
waitus 250
Om A = 1 då
Om B = 0 då Incr räkna annat Decr Count
Slut om
Returnera
Den tryckknapp fuction av rotary encoder är helt enkelt ett avbrott som utlöses genom att ansluta den i till INT1. I matchande rutin, kan alla kindst av saker göra beroende på vad du vill ska hända. I det här fallet används det att loopa igenom menyn, att acceptera värdena och skriva dem till EEPROM av atmega8.