pic basic pro'da böyle bir komut varmı

erciyes38

Üye
Katılım
15 Ara 2011
Mesajlar
63
Puanları
1
Örneğin mikroişlemcinin PA.0 ucuna saniyede 10 kez lojik 1 geldiğinde PB.0 ucunu lojik bir yapacak komut lazım.Hangi komutu nasıl kullanmalıyım.
 
Programla mantıgını tam olarak kavradıgın zaman her şeyi yapabilirsiniz.

-----------------

Saybakalim var word

if porta.0=1 then
saybakalim = saybakalim + 1
end if

if saybakalim =10 then
portb.0 High
end if


gibi bir kod yazılabilir...
 
"count" diye bir komut var:

Kullanımı: COUNT Pin,Period,değişken

Pin'e gelen palsleri period boyunca sayıp değişkene atıyor.

siz şöyle kullanabilirsiniz:



Kod:
if porta.0 = 1 then  //pulse geldiğinde

   count portb.1, 1000, i  // 1 sn süresince say

   if i > 8 then   // 9 ya da fazla pulse geldiyse(ilk pulse'ı yukarıda almıştık)
      portb.0 = 1
   else 
      portb.0 = 0
   endif

endif


Başka şekillerde de yapılabilir, mesela 1 sn'ye yakın sürecek timer kesmesi kurulup, kesme oluşana kadar porttaki değişimler takip edilir, kesme rutininde portb.0 gereken şekilde anahtarlanabilir vs. vs.

Count vb. hazır fonksiyonlar faydalı gibi görünse de aslında programlama kabiliyetini öldürüyor.
 
Son düzenleme:
PIC basic hıc kullanmadım ama bunun cevabnın evet oldugu vede cok basıt bırsey oldugu cok asıkar
 
başka bir yolda bir tmr external clock counter modunda rising edge için kurulup. ana programda 1sn de bir tmr yazmacı kontrol edilebilir.

eğer tmr interruptı kullanacaksanız register ayarları için pic model ve kristal frekansı belirtirseniz tam kod göndeririz.
 
heyt bee ne kesmişsiiniz yukarıda giriş olan pin çıkış yapamadan vermişsiniz
pin önce giriş olacak ve sayıcı olark çalıştıktan reverse edip istddiğin değerde ise bir yapıcaksın..
 

Forum istatistikleri

Konular
127,954
Mesajlar
913,890
Kullanıcılar
449,604
Son üye
baba pero

Yeni konular

Geri
Üst