Şimdi Ara

serin2 komutu çalışmayı engelliyor

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
4
Cevap
0
Favori
1.218
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Selamlar arkadaşlar, serin2 komutuyla başım dertte. 12F675 ve RF modüllü tek kanal verici-alıcı yaptım. Program normalde çalışıyor. Bunun yanında alıcıya artı olarak buton ekleyip, alıcıdaki ledi vericiden bağımsız kontrol etmeye çalışıyorum ama bir türlü başaramadım. Önce vericideki butona basmadan, alıcıdaki buton çalışmıyor. serin2 komutunu kaldırınca alıcıdaki buton normal çalışıyor. Yardım ederseniz sevinirim.
    Kod:
    verici:
    @   device  pic12f675, intrc_osc_noclkout, wdt_on, pwrt_on, mclr_off, protect_off           
    cmcon = %00000111
    ansel = 0
    OPTION_REG.7=0
    trisio = %111101

    SYMBOL CIKIS=GPIO.1
    SYMBOL TUS=GPIO.0
    gpio=0
    BILGI VAR Byte

    PAUSE 200
    BASLA:
    BILGI=0
    IF TUS=0 then
    BILGI=1
    GOSUB GONDER
    WHILE TUS=0 :WEND
    ENDIF
    PAUSE 100
    GOTO BASLA

    GONDER:
    serout2 CIKIS,396,[REP$AA\5,REP$00\5,REP$FF\5]
    serout2 CIKIS,396,[("O"),("Z"),("B"),BILGI]
    serout2 CIKIS,396,[("O"),("Z"),("B"),BILGI]
    serout2 CIKIS,396,[("O"),("Z"),("B"),BILGI]
    return
    END


    alıcı:
    @   device  pic12f675, intrc_osc_noclkout, wdt_on, pwrt_on, mclr_off, protect_off 
    cmcon=%00000111
    ansel=0
    trisio=%000110
    GPIO=0
    BILGI VAR Byte
    GIRIS VAR GPIO.1
    LED VAR GPIO.0
    TUS VAR GPIO.2
    PAUSE 100
    BASLA:
    serIN2 GIRIS,396,1,ZAMAN,[WAIT ("OZB"),BILGI]
    IF BILGI=1 then
    TOGGLE LED
    PAUSE 50
    ENDIF
    ZAMAN:
    IF TUS=0 THEN
    TOGGLE LED
    WHILE TUS=0 :WEND
    PAUSE 50
    ENDIF
    GOTO BASLA
    END


    şema:

    http://img205.imageshack.us/my.php?image=semazd1.jpg



    < Bu mesaj bu kişi tarafından değiştirildi don.vito -- 16 Kasım 2008; 19:54:46 >







  • aslında çalışmaması için bir neden görünmüyor gibi.
    alıcıdaki; serin2 komutunda kullandığınız timeout süresini biraz büyütüp deneyin. (örneğin:10 ms)
    olmazsa, buton kontrolünü ana döngüye koyup, timeout olduğunda da ana döngüye gidebilirsiniz.

    BASLA:
    IF TUS=0 THEN
    TOGGLE LED
    WHILE TUS=0 :WEND
    ENDIF

    SERIN2 GIRIS,396,10,BASLA,[WAIT ("OZB"),BILGI]
    IF BILGI=1 then
    TOGGLE LED
    ENDIF

    GOTO BASLA
    END
  • @garfie cevap için teşekkürler. Önerdiğiniz değişikliğide denedim ama maalesef olmadı. Kodu tekrar eski haline getirdim, nasıl olduysa çalışmaya başladı. Fakat şimdi de şöyle bir durum oluştu, alıcıdaki buton 6-7 kereden fazla basınca led yanık kalıyor. Taa ki vericideki butona basana kadar. Proteusta sorunsuz çalışıyor. İyicene sıtkım sıyrıldı artık, bunalmaya başladım duvara fırlatacam zor tutuyorum kendimi.
  • watchdog'u da kapatıp deneyin,
    int_osc yerine kristal takıp deneme şansınız varsa bir de öyle deneyin bence.
    aklıma başka birşey gelmiyor.
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.