PIC16F877A RF haberleşme Acil yardım!!!

Başlatan cobra32, 13 Nisan 2011, 12:16:44

cobra32

Merhaba arkadaşlar, Keymark ın 433Mhz alıcı-vericisini kullanıyorum. Yazdığım Program simülasyonda(proteus) çalışmaktadır. Fakat board üzerine kurduğumda lcd ekranda yazı göremedim. RF haberleşme sırasında Preamble dediğimiz öncü(uyandırma) bitleri kullanmam gerekliymiş. Fakat araştırmama rağmen bir türlü programı düzgün çalıştıramadım. Aşağıda verici ve alıcı kısmını veriyorum, arkadaşlar bilenlerden yardım istiyorum ödev olarak teslim edicem... Nereye hangi uyandırma kodlarını yazmalıyım??... Şimdiden teşekkür ederim...

Verici:

#include <16f877.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay (clock=4000000)
#use fast_io(a)
#use fast_io(b)
#use rs232(baud=300, xmit=PIN_C6)

int1 buton;

void main ()
{
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_CCP1(CCP_OFF);
setup_CCP2(CCP_OFF);

set_tris_a(0b00000001);
set_tris_b(0x00);
output_b(0x00);

while(1)
{
buton=input(pin_a0);
output_bit(pin_c6,buton);
}
}
..........................................................................

Alıcı:


#include <16f877.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay (clock=4000000)
#use rs232(baud=300, xmit=PIN_C6, rcv=PIN_C7)
#use fast_io(a)
#byte port b = 6
#include <lcd.c>
void main ()
{
setup_psp(PSP_DISABLED);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_CCP1(CCP_OFF);
setup_CCP2(CCP_OFF);

set_tris_a(0b00000001);

lcd_init();
while(1)
{
if (input(PIN_c7) == 0)
{
printf(lcd_putc, "\fSistem Calisiyor");
delay_ms(100);
}
else if (input(PIN_C7) == 1)
{
printf(lcd_putc, "\fSistem Durdu!!!");
delay_ms(100);
}
}
}



subram

öncelikle C bilmiyorum ama RF haberleşmenin bu şekilde lojik bir komutla yapılabileceğini sanmıyorum. bu iş basicde şu şekilde oluyor;

verici
SEROUT2 PORTA.0,396,["D","A","T","A",VERICI]


alıcı
SERIN2 PORTA.0,396,[WAIT("DATA"),ALICI]


burda uyandırma kodu denilen veri "DATA" verisidir. program kodu göndermedn önce DATA adlı bilgiyi gönderiyor kaşıdaki alıcı ise DATA adlı bilgiyi bekliyor  havada DATA bilgisini yakaladığı an o kanaldaki sinyal alıyor. nette "RF  C" vs  şeklinde arama yaparsan C ile yazılmış örneklerden sorunu çözebilirsin sanırım.
http://www.elektronark.org  Türkiyede Elektronik Kültürünü Değiştirmeye Geliyoruz

cobra32

Teşekkür ederim cevapladığınız için.. Fakat ben bunları nereye yazmalıyım pic c için söylüyorum programlama mantığı olarak.. hangi aralığa yazmalıyım??? nereye koymalıyım kodları??? birde pic c bilen arkadaşlardan yardım istiyorum arkadaşlar nette araştırdım, ben keymark modül kullanıyorum ve putc(0b01010101) gibi kodlar nedir nereye yazılır??? alıcı-verici hangi kodlarla data gönderme alma yapılır ben sadece lojik 1 veya 0 istiyorum, sinyal gelince pic'e,lojik 1, sistem devreye girecek lojik 0 olunca sistem durucak, yardımcı olursanız çok sevinirimm...