abidon
Üye
- Katılım
- 23 Kas 2006
- Mesajlar
- 158
- Puanları
- 1
Slm dostum. Anladığım kadarıyla bilgisayardan vericiye data gönderiyorsun, vericiden de alıcıya. Yaptığın devreyi koyarsan daha iyi yardım edebiliriz. Bazı olasılıklar şöyle olabilir:
1)Çalıştırdığına göre verici tarafında max232 vardır. Kullanıyorsan RS232/USB dönüştürüde sıkıntı olabilir.Ya da bilgisayar ile picin haberleşme ayarları uyumsuzdur, baud hızı gibi vs.
2)Devreyi boarda kurduysan RF' li devreler çoğu zaman boardta can sıkar, temassızlık olabilir.
3)RF modullerin bağlantısında eksiklik olabilir.
4)Program dogru gibi gözüküyor, simulasyonda denemek lazım. Belki vericide "veri"' yi de char tipinde oluşturmalısın.
kbhit() fonksiyonunu kullanmak daha sağlıklı olabilir. Bir de bilgisayardan veriyi "seri haberleşme kesmesi" kullanarak almak tavsiye edilir.
Veri her zaman gitmediğine göre; verici devresinde bilgisayar bağlantını iptal edip veriyi basit bir butonla göndererek sorunun bilg.-verici ya da verici-alıcı mı arasında olduğunu test edebilirsin. Butonla çalıştırdığım bir verici program parçası şöyleydi:
#include <16F628A.h>
#fuses XT,NOWDT,NOPROTECT
#use delay(clock=4M)
#use rs232(baud=1200,parity=N,xmit=PIN_B2,rcv=PIN_B1,stop=1)
void main()
{
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
set_tris_a(0xFF);
set_tris_b(0x00);
while(true) {
if(input(pin_a0)) {
while(input(pin_a0));
putc(0b01010101);
putc('x');
putc('a');
}
Başka bir picle bilg. arasında ise;
#use rs232 (baud=4800, xmit=pin_C6, rcv=pin_C7, parity=N, stop=1,errors)
satırını kullanmışım. Buradaki "errors" un faydasını gördüm. Fikir vermesi açısından yazdığım kodları araştırabilirsin.
1)Çalıştırdığına göre verici tarafında max232 vardır. Kullanıyorsan RS232/USB dönüştürüde sıkıntı olabilir.Ya da bilgisayar ile picin haberleşme ayarları uyumsuzdur, baud hızı gibi vs.
2)Devreyi boarda kurduysan RF' li devreler çoğu zaman boardta can sıkar, temassızlık olabilir.
3)RF modullerin bağlantısında eksiklik olabilir.
4)Program dogru gibi gözüküyor, simulasyonda denemek lazım. Belki vericide "veri"' yi de char tipinde oluşturmalısın.
kbhit() fonksiyonunu kullanmak daha sağlıklı olabilir. Bir de bilgisayardan veriyi "seri haberleşme kesmesi" kullanarak almak tavsiye edilir.
Veri her zaman gitmediğine göre; verici devresinde bilgisayar bağlantını iptal edip veriyi basit bir butonla göndererek sorunun bilg.-verici ya da verici-alıcı mı arasında olduğunu test edebilirsin. Butonla çalıştırdığım bir verici program parçası şöyleydi:
#include <16F628A.h>
#fuses XT,NOWDT,NOPROTECT
#use delay(clock=4M)
#use rs232(baud=1200,parity=N,xmit=PIN_B2,rcv=PIN_B1,stop=1)
void main()
{
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
set_tris_a(0xFF);
set_tris_b(0x00);
while(true) {
if(input(pin_a0)) {
while(input(pin_a0));
putc(0b01010101);
putc('x');
putc('a');
}
Başka bir picle bilg. arasında ise;
#use rs232 (baud=4800, xmit=pin_C6, rcv=pin_C7, parity=N, stop=1,errors)
satırını kullanmışım. Buradaki "errors" un faydasını gördüm. Fikir vermesi açısından yazdığım kodları araştırabilirsin.
Son düzenleme: