Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

haberleşme gecikme

Başlatan barut, 04 Aralık 2013, 19:37:21

barut

verici kodu
#include <16f877a.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay (clock=4000000)
#use rs232 (baud=9600, xmit=PIN_C6, rcv=PIN_C7)

void uyan(){     
    putc(0x55);
    putc(0x00);
    putc(0xff);
    return;
}


void main(){
           
   setup_psp(PSP_DISABLED);        // PSP birimi devre dışı
   setup_timer_1(T1_DISABLED);     // T1 zamanlayıcısı devre dışı
   setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
   setup_adc_ports(NO_ANALOGS);    // ANALOG giriş yok
   setup_adc(ADC_OFF);             // ADC birimi devre dışı
   setup_CCP1(CCP_OFF);            // CCP1 birimi devre dışı
   setup_CCP2(CCP_OFF);            // CCP2 birimi devre dışı
  uyan();
  while(true){
    
    if(input(pin_a0))  
        putc('A');
    if(!input(pin_a0)) 
        putc('B');
        
   }

}

alıcı kodu
#include <16f877a.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=PIN_C6,rcv=PIN_C7)

char a;
void main(){
  
   setup_psp(PSP_DISABLED);        // PSP birimi devre dışı
   setup_timer_1(T1_DISABLED);     // T1 zamanlayıcısı devre dışı
   setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
   setup_adc_ports(NO_ANALOGS);    // ANALOG giriş yok
   setup_adc(ADC_OFF);             // ADC birimi devre dışı
   setup_CCP1(CCP_OFF);            // CCP1 birimi devre dışı
   setup_CCP2(CCP_OFF);            // CCP2 birimi devre dışı
   
   
   set_tris_b(0xFF); // B portu komple çıkış
   while(true){
 
      a=getc();               
      if(a=='A')             
		output_high(pin_B0);
      if(a=='B')             
         output_low(pin_B0);
   }

}   

yaklaşık 1 dk gecikme oluyor kodlarda bi sıkıntı var mı yoksa kurduğum devreden dolayı mı gecikme oluyor?

Kabil ATICI

gönderme işini bu kadar yoğun yaparsan sistem kaldırabilir mi bilmem.
Gönderme işini 200ms aralıklarla yapıp deneme şansın var mı?
ambar7

Okan AKÇA

anladıgım kadarıyla rf alıcı verici yapacaksınız. veri göndermeden once uyanma kodunu göndermeniz gerekiyor her veriden önce.

skara1214

Alıntı yapılan: cyclone - 04 Aralık 2013, 23:25:55
anladıgım kadarıyla rf alıcı verici yapacaksınız. veri göndermeden once uyanma kodunu göndermeniz gerekiyor her veriden önce.
udea kullanıyorsa gerekli
Herkes ölür ama herkes gerçekten yaşamaz

barut

udea kullanıyorum uyan komutunu while in içine aldım her veriden önce yolladım.yine çok fazla gecikme yaptı
isis de denedim çalışıyor.ama devreyi kurdum gecikme fazla devrede sorun olabilir mi

MrDarK

#5
Alıcı kodu

set_tris_b(0xFF); // B portu komple çıkış


sakın o kod

set_tris_b(0); // olması gerekmesin :)

Bu yazdığın kodlar çalışırsa bence fazlasıyla sevin :D Baya sıkıntı çıkarabilir kodda ilerleyen zamanlarda , sana tavsiyem interrupt yöntemiyle verileri topla ve gelen verileri analiz ederek işle :)

Zor gelebilir ama işin doğrusu budur.
Picproje Eğitim Gönüllüleri ~ MrDarK