Haberler:

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

Ana Menü

Serin2

Başlatan vale9, 11 Mayıs 2007, 09:03:40

vale9

serin2 kullanırken aşağıdaki kodu yazıyorum. Eğer "TRA" headerı doğru gelir, T datası hatalı gelirse, 50 ms sonra döngüden çıkıyor, orasında sorun yok. Ancak header gelmezse yada hatalı gelirse o zaman döngüden çıkmıyor. Ne yapmam gerekir?

SERIN2 RX,1646,50,GECIS,[WAIT("TRA"),T]
Hayat 1'ler ve 0'lardan ibarettir.

Lütfi AYYILDIZ

Zaman aşımı ve beklemeyi aynı anda koymak serin2 nin açılımında yokgibi, bana biraz mantıksız geldi aslında, hem zaman aşımı koymak hemde headeri beklemek.İkisinden birini silmelisin. Bence wait i sil ve her datanın başında bir header gönder,alıcıda ise 2 değişken tanımla,birincisi headeri karşılaştırmak için ikincisi data için bu daha mantıklı.Rf modül kullanıyosan zaman aşımını silmen gerekecektir.Kolay gelsin

vale9

50 ms'yi bekleme için koymadım, zamanaşımı için koydum. Serin2 komutuna zaten data hattındaki interrupt ile giriyorum, yani hatta zaten data oluyor. Ama problemim çok uzun mesafelerde çalıştığım için data kaybı yaşanabiliyor. Serin2 döngüsüne giriyor ama bazen header'da hata olduğu için çıkamıyor. Ben header'da hata olsa da çıkmasını istiyorum.
Hayat 1'ler ve 0'lardan ibarettir.

Lütfi AYYILDIZ

TRA datası gelmediği müddetçe döngüden çıkamazsın, zaten programda WAIT("TRA"), koymakla bunu kabul etmişsin.50 ms T datası için geçerli.
Alıntı YapBen header'da hata olsa da çıkmasını istiyorum.
sanırım bu yapmak istediğin bu komutla mümkün değil.

SERIN2 RX,1646,50,GECIS,[a,b,c]
if a=T and b=R and c=A then
SERIN2 RX,1646,50,GECIS,[T]
endif


bu işini görebilir.

vale9

Tamam, o zaman göndermeyi de bu şekilde yapmam gerekiyor heralde, headeri ayrı kodda ve T'yi ayrı kodda. Yani gönderirken önce serout2..header ve sonra serout2...T yapmam mı gerekiyor?
Hayat 1'ler ve 0'lardan ibarettir.

Lütfi AYYILDIZ

Evet aynen öyle önce header i sonra datayı