Pozwólcie moi drodzy, że się wtrącę w wątek...
Kolego
@Niveasoft, a co się stanie kiedy w Twoim programie po 2s nadal będę trzymał przycisk?
No dobra, żeby nie być tylko krytykiem to wrzucam moją wersję tego problemu i nieco zmieniłem Twój kod.
Przede wszystkim oczyściłem przerwania, bo dobrym nawykiem jest aby od początku robić tam porządek i umieszczać tylko niezbędne rzeczy (o czym zresztą sam wspominałeś). Dodałem za to timer programowy. Zmieniłem nieco interwał przerwań - teraz jest 10ms co łatwiej się liczy. Program jest oczywiście nieblokujący czyli nie zatrzymuje pętli głównej na czas swojego wykonywania. Pozmieniałem też kolejność instrukcji - tu również dobrym nawykiem jest aby włączać przerwania jak już wszystko się skonfiguruje i poustawia, bo o ile w tak prostym programie zgrzytu nie będzie o tyle w czymś bardziej skomplikowanym może być niezły zonk nawet ze zjaraniem peryferiów dołączonych do procka włącznie(!)...
@michał6201 przeanalizuj dokładnie moją wersję programu, a zobaczysz jakie cuda można wyprawiać z badaniem przycisku w ten sposób napisanym
O tym, że wyszło przy okazji gotowe debounce (nawiasem mówiąc tu niepotrzebne, ale przy dalszej rozbudowie niezbędne) nawet już nie wspominam...
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.