4 kanallı rf alıcı verici yapma

mali1554

Üye
Katılım
27 Tem 2013
Mesajlar
24
Puanları
1
Yaş
34
pıcte yeniyim


arkadaşlar rc araba için 16f628a usart kullnamadan seri bilgi aktarıımı yapacam ama benım porta 0 bitine gelen 1 bilgisi ile kontrol etiketine atlarıp porta.0 bitinde hangi deger varsa bılgı registirnn 0 bitine kaydedip bilgi regıstırın bir kaydıracak .. ama veriyi data gonderirkenki hızı ile benım data alış hızımı nasıl sekron bir hale getirecem datayı kontrol etme data yazma kaydıurma bir suru zaman gidiyor vericide geçikme de yapsam sekron bir sekilde calışırlarmı yardım edebilirmisiniz
BASLA


MOVLW 0X04
MOVWF DATASAY
BTFSC PORTA,0; PORTA,0 KONTROL ET
GOTO KONTROL
GOTO BASLA










KONTROL


BTFSC PORTA,0 ; PORTA,0 BİTİ 0 OLDUMU
GOTO KONTROL
ANA BTFSS PORTA,0 ; 0 BİTİ BİR MI SIFMUI
GOTO SIF
GOTO BIR








SIF
; SIFIR ISA VEYA İSE
BCF BILGI,0
GOTO KAY



BIR
BSF BILGI,0 ;BIR ISA
GOTO KAY




KAY
RLF BILGI,F ; BILGI YI BİR KAYDIR
DECFSZ DATASAY,F ; SAY 4 TANE OLACAK
GOTO ANA ; OLMADIYSA ANA DON
GOTO GTBK





GTBK


MT1


BTFSS BILGI,0
GOTO MT2
CALL MOTOR1

MT2 BTFSS BILGI,1
GOTO MT3
CALL MOTOR2
MT3
BTFSS BILGI,2
GOTO MT4
CALL MOTOR3
MT4


BTFSS BILGI,3
GOTO BASLA
CALL MOTOR1



MOTOR1






MOTOR2






MOTOR3






MOTOR4
 
Son düzenleme:
Ondan değil boyundan büyük işlere kalkışmışsın sen.
 
sanırım kimse benı sevmiyor :)

mali1554 ustacım burda birbirini tanıyan pek kimse yok o yüzden saygı sevgi ve hoş görüye göre işler yürüyüp gidiyor en azından ben yıllardır bunu gördüm e tabii ki burada herkeste bulunmayan paylaşımcılık ruhunu da unutmamak gerekir ;)

Gelelim sizin açtığınız konuya Tamam haklısınız Assembly bu işin ağa babası başlangıç noktası eyvallah :D ama artık kimse asm dili ile zaman harcamaktan yana değil belki öğrencisiniz belki de temelde bu dili öğrenmiş ve başkasına gerek duymamışsınız durumunuzun içeriğini bilmeden varsayım denilen şeyle sallıyorum Ama yine bence kimse konuya cevap vermemişse ve konuda benim baktığım anda 143 defa okunmuşsa bu işte bir aksilik var demektir ;)

Bence ( haddime düşmez ama tavsiye ederim ) kullanmakta olduğunuz yazılımın seviyesini yükseltmelisiniz örneğin pic basic yada proton basic yada daha ağa babalardan gidelim CCS C yada MikroC gibi yazılım ile uğraşmalısınız... Neden derseniz bu programlar ile ilgilenen bir çok ustamız var Asm ile bir dünya satırı gözden geçirmektense üç beş satır komut ile işinizi çözebilme imkanınız var ayrıca bu yüksek seviyeli programlama dilleri ile haşır neşir olan insan/üye sayısı da ASM ye göre oldukça yüksek... Değerli ustalarımız konuya daha hakimler ve anında çözüm üretebiliyorlar çünki bir dünya register yok zamanlama derdi yok herşey belli başlı program komutları ile hallediliyor.

Ben size öğrenci iken yaptığım udeanın arx ve atx modulleri ile çalışan ve pic basic de yazılmış bir programı paylaşayım arada olan farkı ve bakınca anlaşılabilirliği varın siz kıyaslayın Hem de benim yaptığım programda her kumanda ile çalışmasın diye şifreleme işlemi de gerçekleşmiş durumda yazılım ile şifreleri değiştirip bir kumandadan etkilenip diğerlerini görmemesini sağlayabilirsiniz...

Verici için program:

INCLUDE "modedefs.bas"


CMCON=7
ANSEL=0
SIFRE1 VAR BYTE
SIFRE2 VAR BYTE
SIFRE3 VAR BYTE
SIFRE4 VAR BYTE


SIFRE1=1
SIFRE2=9
SIFRE3=8
SIFRE4=4




INPUT GPIO.2
INPUT GPIO.1


AC VAR GPIO.2
KAPA VAR GPIO.1


OUTPUT GPIO.4
LOW GPIO.4


GON VAR BYTE
GON=0


BASLA:
IF AC=1 THEN
GON=10
SEROUT GPIO.4,N2400,[GON,SIFRE1,SIFRE2,SIFRE3,SIFRE4,"1984"]
ENDIF
IF KAPA=1 THEN
GON=20
SEROUT GPIO.4,N2400,[GON,SIFRE1,SIFRE2,SIFRE3,SIFRE4,"1984"]
ENDIF
GOTO BASLA
END

Alıcı için program :

INCLUDE "modedefs.bas"

CMCON=7


INPUT PORTB.1
OUTPUT PORTA.0
OUTPUT PORTB.2
OUTPUT PORTB.3

SIFRE1 VAR BYTE
SIFRE2 VAR BYTE
SIFRE3 VAR BYTE
SIFRE4 VAR BYTE
OKU VAR BYTE

TEKRAR VAR WORD

SIFRE1=0
SIFRE2=0
SIFRE3=0
SIFRE4=0
OKU=0

LOW PORTB.0


BASLA:
SERIN PORTB.1,N2400,["1984"],OKU,SIFRE1,SIFRE2,SIFRE3,SIFRE4
IF SIFRE1=1 AND SIFRE2=9 AND SIFRE3=8 AND SIFRE4=4 THEN
GOTO ATLA
ELSE
LOW OKU
GOTO BASLA
ENDIF
ATLA:
IF OKU=10 THEN
HIGH PORTB.2
PAUSE 25000
HIGH PORTB.3
ENDIF
IF OKU=20 THEN
LOW PORTB.2
LOW PORTB.3
ENDIF
GOTO BASLA
END


Bu programda verici 12F675 alıcı ise 16F628A ile yapılmıştı Programı inceleyin arada ne kadar fark olduğunu siz de gözden geçirin Ve şayet işinize yarayacak ise güle güle kullanın ama bu program iki butonlu sadece açma ve kapatma işlemi yapıyor ama siz istediğiniz gibi uyarlayabilirsiniz...

Ve siz bence sevilecek bir insansınızdır :D

Bu arada söz konusu problemi asm ile çözmek ise ona da söylenecek tek bir lafım olmaz Özür diler Sadece saygı duyarım ve elimden pek bişiy gelmeyeceğini belirtmek isterim ;)

Boyunuzdan büyük işlere kalkışmakta bazen iyidir gidenin yolunu açar ;) Saygılarımla...
 
biraz geç oldu ama kusura bakmayın siteyi yeni actım onca yazmıssınız allah razı olsun hakkınızı helal edin..
 

Forum istatistikleri

Konular
129,880
Mesajlar
930,991
Kullanıcılar
452,753
Son üye
Emrecannnn

Yeni konular

Geri
Üst