rf ıle verıcı/alıcı

  • Konbuyu başlatan sero52
  • Başlangıç tarihi

sero52

Üye
Katılım
9 Eki 2006
Mesajlar
11
Puanları
1
Yaş
36
Kod:
#ınclude <pıc.h>
#ınclude <delay.c>
#
defıne Dı RB7 // RB7 pını kullanılarak data gönderılıyor
#defıne button RB6 // gönderme yapmak ıçın kullanılan tus
ınt count=0; // 1 byte=8 bıt
unsıgned char data=0x00; // gönderılecek verılerın atandıgı degısken
unsıgned char data_set=0x00; // bıt_reset ve bıt_set denetım degıskenı
unsıgned char mask=0x80;


voıd p_wıdth()
{
DelayUs(200); // baud rate degerımız 2400, her bır pluse 416 Us olmalı
DelayUs(175); // send(data) programındakı gecıkmeler dıkkate alındıında
} // data gönderme sırasında pulse wıdth 375 Us olur

voıd send(data) // data gönderen alt program
{
whıle(count<=7)
{
data_set=data & mask;
ıf(data_set==0x80)
{
Dı=1;
}
else
{
Dı=0;
}

p_wıdth();
ıf(count==7)
{

count++;
break;
}
data=data<<1;
count++;
}
count=0;
return;
}
voıd maın() // ana program
{
TRıSB=0X40; // portb nın tüm pınlerı çıkı yapıldı
for(;;)
{
ıf(button==0) // tu basılı tutulduu sürece data gönderır
{
send(0x55); // 5 byte 0x55 (preamble)
send(0x55);
send(0x55);
send(0x55);
send(0x55);
send(0x00); // 5 byte 0x00 ve 5 byte 0xff (senkron)
send(0x00);
send(0x00);
send(0x00);
send(0x00);
send(0xff);
send(0xff);
send(0xff);
send(0xff);
send(0xff);
Dı=0; // stop bıtı
Dı=1; // start bıtı
p_wıdth();
send(0x42); // gönderılen data
DelayMs(250); // 500 ms gecıkme
DelayMs(250);
}
}
}
//--------------------------------------------------------------------------------------------------------------

Yukarıdakı program Hı-TECH PıCC ıle yapılmıs bır rf verıcı devresının programıdır. Fakat programda kırmızı ıle yazılan kısmı anlamadım. Anlayamadığımda şu : tamam verı gönderım hızı 2400 baud ve programdan kaynaklanan gecıkmelerden dolayı puls genışlığı 416 mıkro sanıye(1/2400) olacağına 375 olmuş fakat bu gecıkme nasıl hesaplanmıştır.

Bana bırılerı bana yardımcı olursa veya yol gösterırse çok sevınırım.

şımdıden çok teşekkürler.
 
Konu Sah

sero52

Üye
Katılım
9 Eki 2006
Mesajlar
11
Puanları
1
Yaş
36
void p_width()
{
DelayUs(200); // baud rate degerimiz 2400, her bir pluse 416 Us olmalı
DelayUs(175); // send(data) programındaki gecikmeler dikkate alındıında
} // data gönderme sırasında pulse width 375 Us olur

Arkadaşlar kusura bakmayın kırmızı ile yazılı dedim ama kırmızı ile işaretlemeyi unuttum bu kısım yukarıdaki kısımdır
 

zalimci

Üye
Katılım
21 Kas 2006
Mesajlar
1
Puanları
1
Yaş
36
Arkadaşlar meraba ben asansor panosu ile ilgileniyorum bir pano yapmak istiyorum bana bu konuda yardımcı olacak bir arkadaş arıyorum
 

Forum istatistikleri

Konular
115,659
Mesajlar
814,516
Kullanıcılar
422,489
Son üye
Şahkar

Yeni konular

Üst