sero52
Üye
- Katılım
- 9 Eki 2006
- Mesajlar
- 11
- Puanları
- 1
- Yaş
- 40
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.