rf kontrol

Başlatan gigabytetr, 29 Ocak 2017, 17:35:14

gigabytetr

meraba herkeze kolay gelsin..
basit bi rf kontrol deveresi yapmaya çalışıyorum takıldığım biyer var. tx katı enerjilendiğinde veri göndermeye başlayacak rx in gereken çıkışı 1 olcak buraya kadar sorunyok ,ama tx katında enerji kesildiğinde rx deki çıkışı 0 yapamıyorum.kısaca rx veri alıyosa çıkışı 1 yapsın almıyosa 0 yapsın böyle bişey yapılabilirmi ? 

ete

#1
RX kartına bir timer kurman gerekiyor. Bu timer veri aldıka sıfırlanacak. Veri gelmeyince sürekli sayacak ve zaman aşımına uğradığı zaman yada sayac değerin belirli bir seviyeye geldiği zaman çıkışı sıfırlayacak.
RF haberleşmesi için hangi komutu kullandığın bu işte önemli. Bu dediklerim USART komutları kullanıldığında çalışır. SERIN yada SERIN2 komutları kullanıldığında çalışmaz çünki o komutlar veri gelinceye kadar programı bloke ederler.

Basitçe yapmak istersen şöye olabilir.
BASLA:HSERIN 10,ATLA,[VERI]SAYAC=0ATLA:SAYAC=SAYAC+1IF SAYAC=10000 THEN CIKIS=0GOTO BASLA

gigabytetr

#2
Hocam bi türlü yapamadım baştan veri gelince led yanıyodu ama söndürmüyodu şimdi ledi dahi yakamadım iyice kafam karıştı. yardımcı olurmusunuz.
al
@ __config _INTRC_OSC_NOCLKOUT & _WDT_ON & _PWRTE_ON & _LVP_OFF & _CP_OFFdefine OSC 4PORTB=0TRISB=%00000010define HSER_RCSTA 90hdefine HSER_TXSTA 20hDEFINE HSER_SPBRG 5DEFINE HSER_CLROERR 1SYMBOL RCIE =PIE1.5     'USART Recive interrupt enable bitSYMBOL RCIF =PIR1.5     'USART Receive interrupt flag bitBILGI VAR BYTEGIRIS VAR PORTB.1LED VAR PORTB.6SAYAC VAR WORDBILGI=0SAYAC=0BASLA:HSERIN 10,ATLA,[BILGI]SAYAC=0IF BILGI=1 THEN : HIGH LEDATLA:SAYAC=SAYAC+1IF SAYAC=10000 THEN LED=0GOTO BASLA

ver
@ __config _INTRC_OSC_NOCLKOUT & _WDT_ON & _PWRTE_ON & _LVP_OFF & _CP_OFFdefine OSC 4CMCON=7OPTION_REG.7=0PortB=0TrisB=%00000000SYMBOL CIKIS=PORTB.2VER VAR BYTEPAUSE 200BASLA:   VER=1GONDER:SEROUT2 CIKIS,396,[REP$AA\5,REP$00\5,REP$FF\5]SEROUT2 CIKIS,396,["Y","A","M",VER,10,13]SEROUT2 CIKIS,396,["Y","A","M",VER,10,13]GOTO BASLAEND

ete

Basla satırından sonra gelen Sayac=0 komutunu silmek lazım (ben sildim)
Ayrıca vericide Hserout komutu ile yollasın bilgileri.
Ledin yanmaması serout2 komutu ile Heserin komutlarının birbiri ile uyumsuz olmasından kaynaklanıyordur.
Ete

gigabytetr

Teşekkürler yarın ilk iş denicem.

gigabytetr

Hocam dediklerinizi yaptım çalıştı. sağolun
bi sorum daha var 12f675 de hserout kullanılabilirmi yoksa sadece donanımsal usart olan piclerdemi kullanılır.

ete

Sadece donanımsal Usart olanlarda kullanılır.
Ete

gigabytetr

amacım göndericiyi pilli yapıp enerjiyi buton uzerinden verip çalıştırmaktı verdiğiniz bilgiler sayesinde bunu yapabileceğim :) 12f boyutu boyutu küçültmek için kullanmak istemiştim.

Powered by EzPortal