SHIFTOUT – PBP Türkçe
SHIFTOUT DataPin,ClockPin,Mode,[Var{\Bits}...]
Var parametresi ile belirtilmiş değişkenin içeriğini, ClockPin ve DataPin parametreleriyle belirtilmiş pinler üzerinden senkron bir şekilde kaydırarak gönderir. ClockPin ve DataPin, 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.
\Bits parametresi opsiyoneldir ve kaç adet bitin kaydırılarak gönderileceğini belirtir. Eğer belirtilmezse Var ile belirtilen değişkenin tipinden bağımsız olarak 8 adet bit gönderilir. \Bits parametresi ile gönderilecek bit sayısı belirtilirse gönderme işlemi Mode parametresinde belirtilenden, LSB veya MSB bağımsız olarak her zaman en düşük bitten başlar. Tek bir değişken kullanılarak 16 bite kadar bilgi gönderilebilir. Eğer 16 bitten daha fazla bilgi gönderilecekse köşeli parantez içine birden fazla değişken veya sabit veri eklenebilir.
Mode parametresi ile kullanılacak isimler (Örneğin: LSBFIRST) MODEDEFS.BAS adlı dosyada tanımlanmıştır. Bu isimleri programda kullanabilmek için aşağıdaki ifade, programın başına eklenmelidir.
BS1DEFS.BAS ve BS2DEFS.BAS adlı dosyalar otomatik olarak MODEDEFS.BAS adlı dosyayı programa dahil etmektedir. Eğer bu iki dosyadan herhangi biri programa dahil edilmiş ise (“include”) MODEDEFS.BAS adlı dosyanın tekrar dahil edilmesine (“include”) gerek yoktur. Mode parametresine isim değil de sayı verilmek isteniyorsa, herhangi bir dosya (Örneğin: MODEDEFS.BAS) dahil etmeden (“include”) sayı verilebilir. Bazı Mode numaralarının isimleri yoktur ve numarası belirtilerek kullanılabilir.
Mode parametresine verilecek 0, 1 değerleri saat (“clock”) sinyalinin boşta iken lojik 0 konumunda olduğunu ve gönderim sırasında lojik 1′e çıkıp, gönderim bittikten sonra tekrar lojik 0 konumuna geldiğini belirtirken; 4 ve 5 değerleri ise saat (“clock”) sinyalinin boşta iken lojik 1 konumunda olduğunu ve gönderim sırasında lojik 0′a çıkıp, gönderim bittikten sonra tekrar lojik 1 konumuna geldiğini belirtir.
| Mode | Mode No | İşlem |
| LSBFIRST | 0 | En düşük bit ilk önce gönderilir. Saat (“clock”) sinyali boşta iken lojik 0 seviyesindedir. |
| MSBFIRST | 1 | En yüksek bit ilk önce gönderilir. Saat (“clock”) sinyali boşta iken lojik 0 seviyesindedir. |
| 4 | En düşük bit ilk önce gönderilir. Saat (“clock”) sinyali boşta iken lojik 1 seviyesindedir. | |
| 5 | En yüksek bit ilk önce gönderilir. Saat (“clock”) sinyali boşta iken lojik 1 seviyesindedir. |
Çeşitli mod seçimlerinde veri gönderimlerinin nasıl yapılacağı aşağıdaki şekilde gösterilmiştir:

Senkron haberleşme için gerekli olan saat (“clock”) sinyalinin frekansı 50 KHz’dir. Bu frekans osilatöre bağlı olarak değişmektedir. Bir bitin gönderilme sırasında saat(“clock”) sinyali minimum 2 mikrosaniye süresince konumunu korumaktadır. DEFINE ifadesi ile bu süreye 65535 mikrosaniye (65.535 milisaniye) eklenebilir. En küçük ek gecikme süresi PAUSEUS tanımlaması ile yapılır. Bu minimum süre osilatör hızına göre değişmektedir. Kullandığınız osilatöre göre elde edilebilecek minimum süreyi öğrenmek için PAUSEUS fonksiyonunun açıklamasına bakınız. Bu DEFINE ifadesi 12 bit çekirdeğe sahip cihazlarda kullanılamamaktadır.
Örneğin ekstra olarak 100 mikrosaniye yavaşlama için aşağıdaki ifade programın başına eklenmelidir:
Örnek
SHIFTOUT PORTA.1, PORTA.2, 1,[wordvar\4]
SHIFTOUT PORTC.1, PORTB.1, 4,[$1234\16, $56]
Bunlara da Bakın
- SHIFTIN
Tüm fonksiyonların listesine buradan bakabilirsiniz.
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ı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.