PULSIN – PBP Türkçe
PULSIN Pin,State,Var
Pin‘e gönderilen darbenin (pulse) genişliğini (width) ölçer. Eğer State parametresi 0 olarak ayarlanmışsa dalganın lojik 0 kısmının genişliği (low pulse), 1 olarak ayarlanmışsa da dalganın lojik 1 kısmının genişliği (high pulse) ölçülecektir. Ölçülen genişlik Var ile belirtilen değişkene yüklenir. Fonksiyon, ölçüm değerini 16 bit uzunluğunda verebilmektedir. Eğer Var değişkeni 8 bitlik bir değişken ise 16 bitlik ölçümün LSB (Least Significant Byte (Bit)) kısmı, yani 16 bitlik sayıyı ikilik tabanda yazdığımızda (binary) sayının sağındaki 8 bitlik kısım, değişkene yüklenir. 16 bitlik bir değişkenle sonucun tümünü alabilirsiniz.
Pin, sabit bir değer, 0-15 arası bir değer, 0-15 arası bir değer içeren (Örneğin: B0) bir değişken ya da pin adı (Örneğin: PORTA.0) olabilir. PULSIN fonksiyonunun çözünürlüğü (resolution) osilatör frekansına bağlıdır. Eğer cihaz 4Mhz hızında çalışıyor ise dalga genişliği 10us (mikrosaniye)’nin, 20Mhz hızında çalışıyor ise 2us (mikrosaniye)’nin katları şeklinde ölçülür. Örneğin 4Mhz hızında çalışırken doluluk oranı (duty cycle) 50% ve frekansı 5Khz olan bir kare dalgayı okursanız, fonksiyon size 10 değerini dönecektir. Çünkü böyle bir dalganın periyodu 200us olacaktır. Doluluk oranı (duty cycle) değeri de 1/2 olduğundan 100us lojik1, 100us lojik 0 değerini alacaktır. 4Mhz hızında 10us (mikrosaniye)’nin katları şeklinde ölçüm alındığında 100/10=10 değeri sonuç olarak gelecektir. (Bu durumda State parametresinin 0 ya da 1 olması sonucu etkilememektedir. Doluluk oranı (duty cycle) 1/2 olduğundan lojik 1 ve lojik 0′ın süreleri eşittir.) Bu örneğin simülasyonun görüntüsünü aşağıda bulabilirsiniz. Define ile OSC hızının tanımlamanın PULSIN fonksiyonu üzerinde bir etkisi yoktur. Fonksiyon anlık hızdan etkilenmektedir.
PULSIN öntanımlı olarak darbe (pulse) olup olmadığını anlamak için 65535 çevirim süresi kadar beklemektedir Bu da 4Mhz hızında çalışan bir cihaz için 65535 us (mikrosaniye), bir başka değişle ~0.66 saniye bekleme demektir. Eğer istenirse fonksiyonun bir darbenin (pulse) olup olmamasına bakma ya da gelen darbenin (pulse) düşen ya da yükselen kenarını maksimum bekleme süresi programda yazılacak DEFINE ifadesi ile ayarlanabilir. Burada tanımlanacak değer çevirim sayısı cinsindendir.
Örnek
Şunu da unutmamak gerekir ki DEFINE ile yapılan bu tanımlama RCTIME fonksiyonunu da etkilemektedir.
PULSIN PORTB.4,1,W3
Bunlara da Bakın
- PULSOUT
Tüm fonksiyonların listesine buradan bakabilirsiniz.
İlgili Kaynaklar
Pulse (Darbe)
Duty Cycle (Doluluk Oranı)
- http://en.wikipedia.org/wiki/Duty_cycle (İngilizce)
Least Significant Bit (Byte)
İkilik Taban (Binary)
Bu yazı, “İzoelektronik – Atölye” grubu tarafından, 90alper90 ve Hazar kullanıcı adlı grup üyelerinin ortak, aktif çalışması ile hazırlanmıştır.
Bağlantılı Yazılar
Yorum yapılmamış. Yapılmış
Yorum Yapın ya da Soru Sorun
Yorum yapabilmeniz ya da soru sorabilmeniz için giriş yapmanız gerekmektedir.
Hoşgeldiniz Ziyaretçi. Lütfen giriş yapın veya kayıt olun.
E-posta adresinize aktivasyon iletisi gelmediyse lütfen buraya tıklayın.