Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

Hserout-Hserin Komutları

Başlatan erdogan2734, 13 Haziran 2016, 13:50:27

erdogan2734

    Arkadaşlar merhaba;

Usart kesmesi kullanmadan, hserout ve hserin komutlarını kullanmak istiyorum, protonda böyle bir durum söz konusumudur.?
Yani kesme kullanmadan bu komutlarla veri alıp yollayabilirmiyim.?

Bilgisi olan arkadaşım paylaşırsa sevinirim.
İyi çalışmalar.
Bildiğim tek şey henüz hiç bir şey bilmediğim...

ete

İlla kesme kullanacaksın diye bir şart yok. Var olan şart şu, bu komutları kullanmak için USART portunu mutlaka kullanman gerekiyor.
Yani pic de bu iş için ayrılmış TX pini ile RX pinini mutlaka kullanman şart. Farklı pinler kullanamazsın.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

erdogan2734

  Hocam Merhaba;

hSerIn 5,BAK, [WAIT("ER7"),AL,AL1.lowbyte,al1.highbyte]


Dediğiniz gibi kesme olmadan veri alışverişi yaptım. Sıkıntısız çalışıyor.
Yukarıdaki kodda sormak istediğim, er7 bilgisini bekledi, veri doğruysa al ve al1 değerlerini aldık ve bak baslığına gittik.
Burada kesme kullanmadığımız zamanlarda, veri aldıktan sonra hızlı bir işlem yaptırmak istemiyorsak, BAK başlığına dallandırmasak
direk şu şekilde yapsak sıkıntı olmuyor.
hSerIn  [WAIT("ER7"),AL,AL1.lowbyte,al1.highbyte]

Hserin komutunu kullanırken gecikme ve dallanma adresini kullanmak kullanıcıya kalmış bir şeymidir?
Yoksa şu anda sıkıntı yok ama karmaşık yazılımlarda sıkıntı yaratırmı?

İyi çalışmalar.
Bildiğim tek şey henüz hiç bir şey bilmediğim...

ete

Aslında komut senin düşündüğün gibi çalışmaz. Er7 bilgisini 5 ms beklenir. Gelmez ise BAK etiketine atlar. Bekleme için süre ve etiket ismi girmez sen default süresi kadar (sanırım 65 ms kadar) bekler ve o komut satırını atlar.
Sonuçta her iki komut satırıda çalışır.
Genelde komut kullanılırken istenen bilgiler gelmiş ise bir başka iş yapılır. Mesela geldi=1 değişkenini set etmek gibi.
Gelmedi ise BAK etiketine gittiğinde Geldi=1 olmayacağı için doğru bilgi gelip gelmediğini anlarsın. Bu aslında kesme mantığı. Zira parazitler USART kesmesi oluşturur Ama istenen bilgi gelmedi ise ana program kısmında işlem yapılmaz. Sende kendine göre kesmesiz bir şeyler ayarla artık.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

erdogan2734

Çok iyi anladım hocam.
Teşekkür ederim.
Bildiğim tek şey henüz hiç bir şey bilmediğim...

Z80

Proton'da UART'ı olmayan PIC'ler için RSIN ve RSOUT komutlarını kullanabilirsin.