CCS C RS232 haberleşmesi kesildiğinde işlem yapmak.

bagztov

Üye
Katılım
5 Nis 2018
Mesajlar
175
Puanları
6
Yaş
25
Herkese merhaba, iyi forumlar dilerim.
Yapmaya çalıştığım bir projede picin içerisine yüklediğim zaman bilgisini timer1 ile her saniye düşürüp RS232 protokolü ile bir başka pice gönderiyorum. Diğer pic, birinci picten aldığı zaman bilgisine göre zaman 0'dan büyük ise çıkış pinini lojik 1 yapıyor. Zaman 0'a geldiğinde çıkış lojik 0 oluyor. RS232 haberleşmesinde konnektör olarak DB9 değil de USB kullanıyorum. Dolayısıyla USB konnektörler bağlandığında birinci pic enerjileniyor ve timer da o zaman çalışmaya başlıyor.
Buraya kadar sorun yok ama USB konnektörleri söktüğümde ikinci pic en son aldığı zaman bilgisini LCD'de yazdırıyor ve USB'nin çıkarıldığını anlayamadığı için çıkış hala lojik 1 kalıyor.
Benim istediğim ya USB söküldüğünde, ya da zaman bilgisi 0'a geldiğinde lojik 0 olsun. Ama birinci koşulu bir türlü gerçekleştiremedim.
RS232 kesmesinde;
if(!kbhit()) // veri yoksa
{
output_low(pin_c1);
}
bunu denedim ama olmadı.

Şimdiden yardımlarınız için teşekkür ederim. Herkese iyi forumlar dilerim.
 
İletişimde genelde doğrulama/teyitleşme kullanılır. Alıcı cihaz gönderen cihaza aldığı değeri "bunu mu gönderdin" diye geri göndererek sorar (bilgi büyükse hash koduna çevirerek). Gönderici de bunun karşılığında sıfır/bir gibi bir onay kodu gönderir. Bunun için kaç kere denemeden sonra iletişim olmadığını kabul edecekse bir timeout sayısı da belirlemek gerekiyor. 1, 2, 3 deneme şeklinde.
 
İletişimde genelde doğrulama/teyitleşme kullanılır. Alıcı cihaz gönderen cihaza aldığı değeri "bunu mu gönderdin" diye geri göndererek sorar (bilgi büyükse hash koduna çevirerek). Gönderici de bunun karşılığında sıfır/bir gibi bir onay kodu gönderir. Bunun için kaç kere denemeden sonra iletişim olmadığını kabul edecekse bir timeout sayısı da belirlemek gerekiyor. 1, 2, 3 deneme şeklinde.
Merhabalar, öncelikle vakit ayırdığınız ve cevap verdiğiniz için teşekkür ederim. Araştırma süreci boyunca "Timeout" kavramıyla hiç karşılaşmadım. O yüzden nasıl kullanılacağını bilmiyorum maalesef. Öğrenmem için bir yol gösterebilir misiniz? Herhangi bir kaynak, örnek proje olabilir.
 
Sadece genelleme ile yetineceğim. Timeout, bir iletişimde bağlantıyı veya iletişimi bekleme süresidir. Süre sonunda ya bağlanılamadı ya da iletişim sağlanılamadı diye uygun bir mesaj yazdırılır. Basit seviyede uzun zamanlar önce PIC programlama yapıyordum. Okuma süresine göre bilgiyi gönderen tarafta gönderim sonunda tekrar alıcının altığı bilgiyi okutarak aynı ise 1 değilse alıcıya 0 gönderebilirsiniz. Tabi burada bir kısır döngü de öngörmek gerekir. Teyit bilgisi doğru iletildi mi? O sebeple 1 veya 0'ı okuyamadıysanız timeout süresi kadar bu okumayı tekrarlamak gerekecek.
 
Sadece genelleme ile yetineceğim. Timeout, bir iletişimde bağlantıyı veya iletişimi bekleme süresidir. Süre sonunda ya bağlanılamadı ya da iletişim sağlanılamadı diye uygun bir mesaj yazdırılır. Basit seviyede uzun zamanlar önce PIC programlama yapıyordum. Okuma süresine göre bilgiyi gönderen tarafta gönderim sonunda tekrar alıcının altığı bilgiyi okutarak aynı ise 1 değilse alıcıya 0 gönderebilirsiniz. Tabi burada bir kısır döngü de öngörmek gerekir. Teyit bilgisi doğru iletildi mi? O sebeple 1 veya 0'ı okuyamadıysanız timeout süresi kadar bu okumayı tekrarlamak gerekecek.
Bunu ilerleyen zamanda araştıracağım. Şimdilik işimi daha basit bir şekilde çözdüm. Zaman ayırıp ilgilendiğiniz için teşekkür ederim.
 

Forum istatistikleri

Konular
128,133
Mesajlar
915,308
Kullanıcılar
449,850
Son üye
umutbaysal9

Yeni konular

Çevrimiçi üyeler

Geri
Üst