Stap 4: De code: de roterende encoder lezen.
Als je goed op het diagram kijkt, ziet u dat bij het draaien van gelijk, dat b is altijd laag op de stijgende randen van A. Voor het inschakelen van de linker B altijd wil hoog op de stijgende randen van A.
Dus als we A aan INT0 hechten en het activeren van een interrupt aan de stijgende rand ingesteld, dan al die we moeten doen in de interrupt routine is het controleren of B is 0 of 1 om te weten de richting. Afhankelijk van de richting, een teller is is verhoogd of verlaagd en dit prestatiemeteritem kan vervolgens worden gebruikt in de hoofdlus de waarden van een aantal variabelen instellen. Het is echt zo simpel als dat!
Bascom-code:
Dim tellen als geheel getal
Een Alias Pind.2 ' (INT0)
B Alias Pind.4
config A als input
config B als input
Set B
Reset graaf
Config Int0 = stijgende
Op Int0 Getencoder
Inschakelen Interrupts
Int0 inschakelen
doen
' hoofdlus hier
lus
Getencoder:
waitus 250
Als A = 1 Then
Als B = 0 dan Incr tellen anders Decr graaf
End If
Terugkeer
De drukknop fuction van de roterende encoder is gewoon een interrupt die wordt geactiveerd door het aansluiten van de in te INT1. In de overeenkomende routine, kunt alle kindst van spullen doen afhankelijk van wat u wilt gebeuren. In dit geval is het doorlopen van het menu, aan de waarden accepteren en om hen te schrijven aan de EEPROM van de atmega8 gebruikt.