Rxb12 modül ve Hserin Resetleme Sorunsalı

Başlatan ta3usl, 29 Ekim 2016, 21:23:56

ta3usl

Öncelikle tüm arkadaşlarımın Cumhuriyet bayramını kutluyorum.

16f1829 pic ve Rxb12 modül ile 433 mhz. iletişim kurmaya çalışıyorum. Veri gönderimini Hserin ve Hserout ile yapıyorum.
watchdog timer kapalıyken veriyi alıyor fakat timeout sonunda istediğim etikete gitmiyor. watchdog timer on yapınca , durmadan reset atıyor. Rsin ve serin ile de denedim aynı sorun.

Rf modülünü takmadan rx pinini logic 1 yaptığımda reset atmadan çalışmaya devam ediyor. Fakat modülü bilgisayara takıp izlediğimde gelen veriyi gözlemleyebiliyorum. Sorun , rf modülün çok fazla parazitli olması gibi gözüküyor fakat emin değilim.

Windows7 64 bit makina ve Proton basic Loader : 1.0.0.6 , compiler: 3.5.5.5  kullanıyorum.

Üstadlarım, program ayarlarını kontrol edip bu sorunu aşmam için fikir ve önerilerinizi paylaşırsanız sevinirim.

Teşekkürler...


Device = 16F1829

Config1 FOSC_INTOSC, WDTE_ON, PWRTE_OFF, MCLRE_OFF, CP_OFF, CPD_OFF, BOREN_OFF, CLKOUTEN_OFF, IESO_ON, FCMEN_ON
Config2 WRT_OFF, STVREN_ON, LVP_ON , BORV_19 , PLLEN_OFF

Xtal=16

OSCCON = %01111011
ANSELA = %00000000     
ANSELB = %00000000     
ANSELC = %00000000
WPUA = %00000000 
WPUB = %00000000
WPUC = %11111100 

INTCON = 0
CM1CON1 = 7

OPTION_REG = 7

TRISA = %00000000
TRISB = %00100000
TRISC = %11111110

PORTA = 0
PORTB = 0
PORTC = 0

'seri_iletisim
Declare Hserial_Baud = 1200
RCSTA = $90 
TXSTA = $20
SPBRG = 64 
SPBRGH = 3
BAUDCON.3 = 1
Declare Hserial_Clear = On


Dim x As Byte
Symbol led = PORTA.0

'pic açıldığını anlamak için led yanıp sönüyor

for x = 0 to 10
toggle  led
clrwdt
delayms 50
next

led = 0

q:
x = 0
Clrwdt
HSerIn 50,q_1,[Wait("TA3"),x]
Clrwdt
If x = 5 Then Toggle led

q_1:

    'burada rutin işlemler yapacak

GoTo q:

End

ete

16F1829 daha önce hiç kullanmadım. O nedenle çok yardımcı olamayacağım. Ama bu gibi durumlarda öncelikle Data Sheet'i açar EUSART haberleşmesini etkileyen register tablasonu incelerim. Bu tablo Data Sheet da Tablo 8.1 ve Tablo 8.2 olarak verilmiş. Birisi göndermede diğeri alma işleminde etkili registerleri gösteriyor.
Toplam 16 adet register var orada bazılarına programında olması gereken değerlerini vermiş gözüküyorsun. Diğerlerinide inceleyip olması gereken değerleri vermende yarar var.
Mesela önemlilerden birisi Özel fonksiyon registeri olan APFCON0 registeri haberleşmede kullanılacak TX ve RX pinlerinin yerlerini değiştirebiliyor. Default değerini bilmiyorum ama gerekirse doğru değer verilerek seçtiğin RX ve TX pinlerini doğrulaman gerekir.
Bazı registerler kesme kullanılması halinde değer alacak registerler, sen kesme kullanmadığına göre bunları atlayabilirsin.
Mesela INTCON,PIE1,PIR1 registerleri bu iş içindir.
INLVLB registeri pinlerin seviyelerini seçmek için kullanılıyor. İlk defa rastladığım bir register bu. Sen, TTL seçmen gerekir. Bunun için INLVLB registerine sıfır değerini vermen yeterli.
Bu işi yaptıktan sonra tekrar dene istersen.
Ete

 

ta3usl

Hocam, cevabınız için teşekkür ederim.

INLVLB =0 ile de aynı sıkıntıyı yaşadım.  Hc-12 modül buldum. Şu an onunla sıkıntı olmadan çalışıyor.

Aslında dediğiniz gibi datasheeti iyice okumadan bu pici kullanmaya başladım.

Datasheeti okuyup rxb12 ile testler yapacağım. Tecrübelerimi burada paylaşırım.

teşekkürler.

Powered by EzPortal