SERIN – PBP Türkçe
SERIN Pin,Mode,{Timeout,Label,}{[Qual...],}{Item…}
Pin üzerine, standart asenkron formatı – 8 veri biti, eşlik yok, 1 dur biti (8N1) – ile gönderilen bir veya birden fazla veriyi almak için kullanılır. SERIN komutu, BS1 Serin komutuna çok benzemekle beraber ek olarak Timeout (zaman aşımı) parametresi alabilmektedir. Pin otomatik bir şekilde giriş olacak şekilde ayarlanır. 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. Mode parametresinin alacağı isimler ise (Örneğin: T2400) 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. Aşağıdaki tabloda mod numaraları, isimleri ve bunların hangi “baud rate” değelerine karşılık geldiği görülebilir.
| Mode | Mode No | “Baud Rate” | Durum |
| T2400 | 0 | 2400 | Düz (“True”) |
| T1200 | 1 | 1200 | |
| T9600 | 2 | 9600 | |
| T300 | 3 | 300 | |
| N2400 | 4 | 2400 | Terslenmiş (“Inverted”) |
| N1200 | 5 | 1200 | |
| N9600 | 6 | 9600 | |
| N300 | 7 | 300 |
Timeout ve Label parametreleri opsiyonel parametrelerdir. Eğer belirtilirlerse, Pinin belirtilen süre boyunca boşta kalması durumunda, zaman aşımı, programın başka bir etikete atlamasını sağlarlar. Timeout parametresinin birimi 1 milisaniyedir. Yani beklenilecek süre, Timeout milisaniyedir. Timeout ile belirtilen süre boyunca herhangi bir veri alınmazsa SERIN fonksiyonunun çalışması durur ve programa Label parametresi ile belirtilmiş etiketten devam edilir.
Seri iletişim ile alınacak bilgiler, belirlenmiş bazı şartlı bilgilerden sonra geliyor olabilir. Bu şartlı bilgiler Qual parametresi ile belirtilir ve köşeli parantez içine yazılır. Bu sayede belirlenen bazı bilgilerin gelmesinden sonra gelen bilginin değerlendirilmesi sağlanabilir. Bu seçenek opsyioneldir. Gelen bilginin, belirlenen şartlı bilgiye tam sırası ile uyması gerekir. Eğer gelen bilgi ile, belirtilmiş şartlı bilgide herhangi bir uyuşmazlık yaşanırsa, şartlı bilgiyi test etme işlemi baştan başlar. Bir başka deyişle, uyuşmazlıktan sonra alınacak bilginin ilk “byte”ı ile, şartlı bilginin ilk “byte”ı karşılaştırılır. Qual parametresi bir sabit, değişken ya da kelime, katar (“string”) tipi bir sabit olabilir. Kelime, katar (“string”) tipi sabitlerin her bir karakteri ayrı ayrı birer şartlı bilgi olarak değerlendirilir.
Bu özellik anlatımda biraz karışık gözükse de aslında kullanımı oldukça kolaydır. Bu özellik ile önceden belirlenen bir sayı, kelime ya da bunların diziliminden oluşan bir kalıptan sonra gelen bilgilerin değerlendirilmesi sağlanabilir.
Eğer program yazarken şartlı bilgi kullanılmış ve bilgi alımı sırasında şart sağlandıysa, ardından gelen bilgilerin, SERIN fonksiyonuna Item parametresi ile belirtilmiş değişkenlere kaydedilmesine başlanır. Eğer değişken ismi direkt olarak kullanıldıysa, gelen karakterin ASCII değeri kaydedidilir. Eğer değişkenin başına (#) işareti konulduysa, gelen karakter onluk tabana çevrilir ve çevrilmiş hali kaydedilir. Bu kullanımda herhangi bir rakam gelene kadar alınacak tüm rakamsal olmayan değerler göz ardı edilir. Yine sayı gönderimini bitirmek için gönderilen rakamsal olmayan değerler göz ardı edilmekte, kaydedilmemektedir.
SERIN komutu, osilatör hızının 4 MHz olduğunu var sayar. Eğer osilatör hızı farklı ise fonksiyonun düzgün çalışabilmesi için hızın, OSC tanımlaması yapılarak belirtilmesi gerekmektedir. Aksi taktirde fonksiyon düzgün çalışmayacaktır. Örnek olarak 10 MHz hızında osilatör kullanılıyorsa aşağıdaki ifade programın başına eklenmelidir.
RS-232 – TTL çeviriler piyasada kolay bulunmasına ve ucuz olmasına rağmen, bu çeviricileri kullanmadan da bir çok uygulamada sorunsuzca seri iletişim yapılabilmektedir. Bu tür kullanımlarda terslenmiş (“inverted”) veri alım modu kullanılmalıdır. Bu, Mode parametresine N ile başlayan değerleri, N300, N9600 gibi, vererek sağlanabilir. Bu tür kullanımlarda MeLabs, PBP üreticisi firma, tarafından aşağıda verilen akım sınırlayıcı devrenin kullanılması önemlidir.

Örnek
SERIN 1,N2400,["A"],B0
Bu kullanımda gelen karakterin ASCII değeri kaydedilir. Örneğin A karakterinden sonra 5 sayısı gönderildiyse, B0 değişkenine 5′in ASCII karşılığı yani 53 değeri kaydedilir.
SERIN PORTA.0,N2400,5000,GELMEDI,["A"],#B0
Bu kullanımda da gelen sayının değeri kaydedilir. Yine A karakterinden sonra 5 sayısı gönderildiyse, bu sefer B0′ın değeri 5 olacaktır. Ayrıca bu örnekte opsiyonel olan Timeout ve Label parametreleri de kullanılmıştır. Eğer PORTA.0 5 saniye boyunca boşta kalırsa, program GELMEDI adlı etikete atlar.
Bunlara da Bakın
- SEROUT
- SERIN2
- SEROUT2
- HSERIN
- HSEROUT
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ı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.