Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

program akışındaki delay_ms()

Başlatan bunymert, 06 Kasım 2016, 23:15:40

bunymert

program akışındaki delay_ms() gecikmeleri yüzünden bazen buton basma algılamalarına sorun çıkıyor. interapt kullanmadan bunu nasıl çözebilirim acaba (buton sayısı 4 olduğu için)
teşekkürler

dursuncemal

illaki interup kulanmayayim diyor isen;oncelikle tuslari okudugun bir fonsiyon yazmalisin fonksiyonun adinada  'tus_oku();' diyelim. sonra gecikmelerini parcalamalisin. soyleki 2 saniyelik bir gecikmemiz oldugunu varsayalim,bu durumda tus okumaya 2 saniyede bir gitmis oluruz.

bu  bu durumda sunu yapabiliriz;

delay_ms_(500);
tus_oku()
delay_ms_(500);
tus_oku()
delay_ms_(500);
tus_oku()
delay_ms_(500);
tus_oku()

burada 2 sn lik gecikmeyi 4 e bulmus olduk yani 2sn icinde 4 kere tus okumus olursun.
:=

1n4001

Systick kullanarak programı örneğin 10ms'de bir döndürün. Her buton için birer sayaç kullanın. Butona basıldığında sayaç bir artsın ve her döngüde hala basılıysa sayaç bir artsın. Mesela sayaç >= 10 olduğunda butona basıldığını belirten bir bayrak kullanın. Bu süre içinde buton bırakıldıysa sayaç sıfırlansın. Böylece butonun basıldığı anlaşılması için butona 100ms basılı tutulması gerekir ve program akışındaki başka herhangi bir noktanın yavaşlamasına sebep olmaz.

mehmet

Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

int32

Alıntı yapılan: mehmet - 07 Kasım 2016, 12:57:28
Sihirli kelimeler:
"state machine"

Temiz iş, State Machine (Sonlu Durum Makinası) ile yapılır.

JOKERAS

Multitask.
İki butonun Basılıp basılmadığını,kontrol eden bir Multitask.
Bu şekilde Bloke olmadan,Delaylar da geçirdiği zamanı yan gelip keyif çatarak geçirmektense 
bir işin ucundan tutması gibi.


bunymert

Arkadaslar ilginiz icin cok tesekkurler. Multitask ve state machine ile ilgili bir bilgim yok. Acaba birer ornek verebilir misiniz.
Tesekkurler

mehmet

Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr