Rotační koder
Moderátor: Moderátoři
Rotační koder
$regfile = "m8def.dat"
$crystal = 10000000
$hwstack = 32
$swstack = 10
$framesize = 40
Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Portc.5 , E = Portc.4 , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3
Dim B As Byte
Dim Citac As Word
Portd = &B00000011
Citac = 0
Cursor Off
Cls
Lcd "Encoder test"
Wait 2
Do
B = Encoder(pind.0 , Pind.1 , Links , Rechts , 0)
Loop
End
Links:
Incr Citac
Cls
Lcd B ; " Right"
Lowerline
Lcd Citac
Return
Rechts:
Decr Citac
Cls
Lcd B ; " Left "
Lowerline
Lcd Citac
Return
End
nekmil píše:Já ho používám několik let a bez problému.
B = Encoder(pind.0 , Pind.1 , Links , Rechts , 0) zkus tu nulu změnit na 1
Při 0 ta smyčka běží příliš rychle, proto asi špatně vyhodnocuje jednotlivé kroky. Při 1 čeká na krok viz nápověda v Bascomu.
Vyzkoušel jsem 0 i 1, ale je to pořád stejný. I když točím na jednu stranu, pomalu nebo rychle, to je jedno, tak to chvíli přičítá a hned zase odčítá. prostě zmatek nepoužitelný.
Nevím jestli to tedy není tím koderem. Nevíte o nějakém "funkčním" nebo mám vyzkoušet další kus od slona?
Hlavně že tam autor píše "ale je třeba mít na paměti maximální proud kontakty!" a dá paralelně ke kontaktům kondíky 47nF. Jaký proud asi teče tím kontaktem, když šlusne kondík 47nF nabitý na 5V? Určitě větší než pár mA.
Taky občas dávám k tlačítkům kondíky, kvůli EMC, ale dávám 10nF a nepoužívám tlačítka s udaným max. proudem menším než 100mA.
nekmil píše:Ten Tvůj program jsem zkoušel v simulátoru, funguje správně akorát to zobrazování B je celkem zbytečné. V mém zařízení žádné ošetření vstupů nepoužívám.
jasně, vím, že to B je tam zbytečné, měl jsem to jen abych viděl, co je na vstupu.
Tak nevím, jestli mám rozebrat ten koder, jestli je tam uvnitř všechno, jak má být