Buzzer Kontrol

Başlatan HeCToR, 21 Şubat 2016, 13:34:57

HeCToR

Merhaba Arkadaşlar harici interrupt içerisinde zaman kaybını önlemek için her kesme oluştuğunda buzzerı bir defa açıp kapatma işlemini nasıl yapabilirim ? açıp kapatma işlemi arasındaki delay fonksiyonunu göz önünde bulundurarak Saygılar.
Bilginin Efendisi Olmak İçin Çalışmanın Kölesi Olmak Gerekir

serdararikan

interrupt içerisinde bir değişkene bip süresini girersin.buzzeri aktif edersin.ana döngü içerisinde bu değişkeni değeri sıfırdan farklıysa azaltırsın.değişken değeri 0 olunca buzzeri durdurursun. tekrar kesme gelene kadar değişken değeri sıfır olacağı için buzzer hep susar.

HeCToR

@serdararikan hocam delay fonksiyonum sabit bir değer olacak konuda tam ifade edemedim galiba sadece bip işlemi yapacağım
Bilginin Efendisi Olmak İçin Çalışmanın Kölesi Olmak Gerekir

RaMu

Sabit olması bir şeyi değiştirmez,
@serdararikan ın dediği gibi yapabilirsin.

__harici_kesme()
{
bip_durumu_ve_suresi = 100;
diğer işlemler...
...
...
}
.
.
.
ana döngü
main()
{
..
..
işlemler
..
..

if(bip_durumu_ve_suresi != 0)
{
LATx.X = 1;  //buzzer aktif
bip_durumu_ve_suresi--;   //bip süresi 
delay-ms(1);

}
else()
LATx.X = 0;  //buzzer pasif


}



İstersen bip ____ bip ____ bip vs. de yaptırabilirsin,
veya bip kontrol işini timer ve timer kesmesi kurup
mainden tamamen bağımsız halede getirebilirsin.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

HeCToR

Bilginin Efendisi Olmak İçin Çalışmanın Kölesi Olmak Gerekir

dursuncemal

dikkat!! interrup kesman beep  surenden daha kisa olursa beep in surekli calabilir.
:=