Witam
Mam problem z programem który ma obsłużyć enkoder
Objaw jest taki że obracając go licznik na wyświetlaczu zmienia się co drugi impuls (nie ważne czy robię to szybko czy wolno)
00 stan spoczynkowy
01 stan przejściowy
11 stan spoczynkowy
10 stan przejściowy
00 stan spoczynkowy
Wydaje mi się że program reaguje na stan spoczynkowy 00 ale nie reaguje na stan spoczynkowy 11
enkoder podłączony mam do INT0 i INT1 podwieszony przez 10K do plusa
Jak zmusić program aby rozpoznawał stan spoczynkowy 11
00 - styki rozwarte
11 - styki zwarte
Mam problem z programem który ma obsłużyć enkoder
Objaw jest taki że obracając go licznik na wyświetlaczu zmienia się co drugi impuls (nie ważne czy robię to szybko czy wolno)
00 stan spoczynkowy
01 stan przejściowy
11 stan spoczynkowy
10 stan przejściowy
00 stan spoczynkowy
Wydaje mi się że program reaguje na stan spoczynkowy 00 ale nie reaguje na stan spoczynkowy 11
enkoder podłączony mam do INT0 i INT1 podwieszony przez 10K do plusa
Jak zmusić program aby rozpoznawał stan spoczynkowy 11
00 - styki rozwarte
11 - styki zwarte
$regfile = "attiny2313.dat"
$crystal = 4000000
Cha Alias Pind.2
Chb Alias Pind.3
Config Cha = Input
Config Chb = Input
Config Pind.6 = Output
Config Int0 = Falling
Const Debouncetime = 1
Dim Wtime As Byte
Dim Encounter As Integer
Set Chb
On Int0 Getencoder
Cls
Wtime = 100
Encounter = 0
Enable Interrupts
Enable Int0
Do
Set Portd.6
Waitms Wtime
Upperline
Lcd "encounter: " ; Encounter ; " "
Reset Portd.6
Waitms Wtime
Loop
Getencoder:
Waitms Debouncetime
If Cha = 0 Then
If Chb = 0 Then Incr Encounter Else Decr Encounter
End If
Gifr = 64
Return
End