RF haberleşme kullanarak bir kumanda uygulaması yaptım. RF 'ten kaynaklı olduğunu tahmin ettiğim bir sorun yaşıyorum . Öncelikle RF'i çıkartıp seri bir kablo bağladığımda PIC'ler arasına devre sorunsuz çalışıyor , bunu belirteyim. Şimdi RF bağlı iken olan ise RF bazen sorunsuz iletiyor bazen hiç bir işlem yapılamıyor. Örneğin düzgün çalışırken ; sistemin enerjisini çıkartıp tekrar taktığımda çalışmaz olabiliyor.
Kullandığım RF modülü Keymark (spirit-on) denilen modüllerden. Aynı modülü kullanmış arkadaşlar veya RF haberleşmede uygulama yapmış arkadaşlar yardımcı olursa sevinirim..
Tamam aşağıdaki kodlardır.
Burada trans değişkenine PortB nin pinleri sırayla yazılıyor ve trans değişkeni karşı tarafa gönderiliyor. Ayrıca tekrar edeyim seri bir kabloyla sistem çalışıyor
Proton komutlarıdır:
LoadBit trans , 0, PORTB.1
LoadBit trans , 1, PORTB.2
LoadBit trans , 2, PORTB.3
LoadBit trans , 3, PORTB.4
LoadBit trans , 4, PORTB.5
LoadBit trans , 5, PORTB.6
LoadBit trans , 6, PORTB.7
"16468" modu protonda 9600 baud'u belirtiyor, bana elinizdeki modüller için biraz yüksek bir hız gibi geldi , denemenize bence daha düşük hızlarla başlayın, sorun yaşamayacağınız hıza kadar çıkabilirsiniz, kablolu bağlantıyla verilerin ulaşması rf modüller ile de ulaşabileceğini göstermez.
Ayrıca sanırım preamble de kullanmamışsınız, şu mesajımda preamble kullanımı ile ilgili bilgiler ve udeanın dökümanı mevcut:
merhaba preamble'dan kastınız sanırım önceden gönderilen kontrol amaçlı bilgi .evet kullanıyorum orda trans değişkeninden önce "abc" gönderiyorum. Karşı tarafta da abc bekleniyor sonra değişken alınıyor.
hız düşürme meselesini deniyeceğim hemen ancak bu bazen sorunsuz çalışıp bazen hiç çalışmamasını açıklar mı ? Ama deniyeceğim.. linke de bakıyorum teşekkürler. tekrar bilgi vereceğim
Preamble sizin "ABC" örneğinde olduğu gibi alıcı tarafta da tanımlı byte'lardan önce, sadece bit senkronizasyonu sağlamak için gönderilen ve alıcı tarafından dikkate alınmayan $AA,$00, $FF gibi bit dizilerine deniyor. Sizin örneğe uygulayacak olursak şöyle olmalı:
SEROUT PORTA.2,16468,[REP$AA\5,REP$00\5,REP$FF\5] ; preamble
SerOut PORTA.2,16468,["abc", trans ]
Yok hocam sorun çözülmedi tam çözüldü diyorum kapatıyorum sistemi 5 dk geçiyor , açıyorum , butona basıyorum ama hareket yok ..bi süre sonra açıp kaparken çalışmaya başlıyor
Zaman kısıtlaması yoksa preamble byte'larının bulunduğu satırları 3-5 kez tekrarlayın.
Bu arada pic'ler dahili osilatör ile çalışıyor ise bir de kristal kullanarak deneyin.