Haberler:

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

Ana Menü

RF Sorunu

Başlatan ozay34, 03 Mart 2014, 21:08:09

ozay34

burda birçok  sorunu çözdüm yardımlarınızla. rf konusunda da yardımcı olursanız sevinirim. ısıste çalışıp devrede deneyince çalışmıyor. Kodlar aşağıdadır.
VERİCİ
#include <16f877A.h>
#fuses  XT, NOPROTECT, NOWDT, PUT
#use delay(clock=4000000)

#use rs232(baud=1200, xmit=PIN_C6, rcv=PIN_C7, parity=N, stop=1)


void main(){

set_tris_b(0xFF);

   while(1){
      if(input(pin_b0))
      {
         while(input(pin_b0));
         putc(0b01010101);
         putc('X');
         putc('A');
         delay_ms(50);
      }
      if(input(pin_b1))
      {
         while(input(pin_b1));
         putc(0b01010101);
         putc('X');
         putc('B');
         delay_ms(50);
      }
}
}

ALICI
#include <16f877A.h>
#fuses XT, NOWDT
#use delay(clock=4000000)

#use rs232(baud=1200, xmit=PIN_C6, rcv=PIN_C7, parity=N, stop=1,)
char alinan;
char data;

void main(){

   while(true)
   {
   

      alinan=getc();
      if(alinan=='X')
      {
         data=getc();
         if(data=='A')
         {
         output_high(pin_b0);
         delay_ms(1000);
           
      }
       if(data=='B')
         {
         output_low(pin_b0);
         delay_ms(1000);
           
      }
   }
           
      }
   

}

ozay34

#1
Arkadaşlar aşağıda kodları yazılı programı başarılı bir şekilde derliyorum.isiste çalışıyor.board üzerine kurduğumda LCD de yazıları görüyorum fakat butonlar aktif değil.butona bastığım halde değişkenler farklı zamanlarda farklı değerleri kafasına göre yazıyor.yardımcı olursanız sevinirim.

Verici kod;
#include <16f877A.h>
 #fuses XT, NOPROTECT, NOWDT, PUT
 #byte portc=5
 #byte portb=6
 #byte portd=6
 #use delay(clock=4000000)
 #use rs232(baud=1200, xmit=PIN_C6, rcv=PIN_C7, parity=N, stop=1)
 #use fast_io(b)
 #use fast_io(c)
 #use fast_io(d)
 void main(){
 set_tris_b(0xff);
 set_tris_d(0xff);
 set_tris_c(0x00);
 portc=0;

 while(1){
 if(input(pin_b0))
 {
 while(input(pin_b0));
 putc(0b01010101);
 putc('X');
 putc('A');
 delay_ms(50);
 }
 if(input(pin_b1))
 {
 while(input(pin_b1));
 putc(0b01010101);
 putc('X'); 
 putc('B');
 }
 if(input(pin_b2))
 {
 while(input(pin_b2));
 putc(0b01010101);
 putc('X'); 
 putc('C');
 }
 if(input(pin_b3))
 {
 while(input(pin_b3));
 putc(0b01010101);
 putc('X'); 
 putc('D');
 }
 if(input(pin_b4))
 {
 while(input(pin_b4));
 putc(0b01010101);
 putc('X'); 
 putc('E');
 }
 if(input(pin_b5))
 {
 while(input(pin_b5));
 putc(0b01010101);
 putc('X'); 
 putc('F');
 }
 if(input(pin_b6))
 {
 while(input(pin_b6));
 putc(0b01010101);
 putc('X'); 
 putc('G');
 }
 set_tris_d(0xFF);


 if(input(pin_d0))
 {
 while(input(pin_d0));
 putc(0b01010101);
 putc('X'); 
 putc('H');
 }
 if(input(pin_d1))
 {
 while(input(pin_d1));
 putc(0b01010101);
 putc('X'); 
 putc('I');
 }
 if(input(pin_d2))
 {
 while(input(pin_d2));
 putc(0b01010101);
 putc('X'); 
 putc('J');
 }
 if(input(pin_d3))
 {
 while(input(pin_d3));
 putc(0b01010101);
 putc('X'); 
 putc('K');
 }
 if(input(pin_d4))
 {
 while(input(pin_d4));
 putc(0b01010101);
 putc('X'); 
 putc('L');
 }
 if(input(pin_d5))
 {
 while(input(pin_d5));
 putc(0b01010101);
 putc('X'); 
 putc('M');
 }
 }
 }



Alıcı;

#include <16f877A.h>
 #fuses XT, NOWDT
 #byte portc=5
 #byte portb=6
 #byte portd=6
 #use delay(clock=4000000)
 #use rs232(baud=1200, xmit=PIN_C6, rcv=PIN_C7, parity=N, stop=1)
 #use fast_io(d) 
 #define LCD_ENABLE_PIN PIN_D0 //LCD E pini RD0 de
 #define LCD_RS_PIN PIN_D1 //LCD RS pini RD1 da 
 #define LCD_RW_PIN PIN_D2 //LCD RW pini RD2 de 
 #define LCD_DATA4 PIN_D4 //LCD data pinleri 
 #define LCD_DATA5 PIN_D5 //.. 
 #define LCD_DATA6 PIN_D6 //.. 
 #define LCD_DATA7 PIN_D7 //..
 #define use_portd_lcd TRUE
 #include <lcd.c>
 char klavye[80];
 #int_rda

 char yazilan[]="1";
 char yazilan1[]="2";
 char yazilan2[]="3";
 char alinan;
 char data;
 void main(){ 
 setup_adc_ports(NO_ANALOGS);
 setup_adc(ADC_OFF);
 setup_psp(PSP_DISABLED);
 setup_spi(SPI_SS_DISABLED);
 setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
 setup_timer_1(T1_DISABLED);
 setup_timer_2(T2_DISABLED,0,1);
 setup_comparator(NC_NC_NC_NC);
 setup_vref(FALSE);
 set_tris_d(0x00);
 lcd_init(); //LCD hazırlanıyor


 while(true)
 {
 enable_interrupts(int_rda);
 alinan=getc();
 if(alinan=='X')
 {
 data=getc();
 if(data=='A')
 {
 lcd_send_byte(0,0x01);
 printf(lcd_putc,"okul\nsınıf");
 }
 else if(data=='B')
 {
 printf(lcd_putc,"\f%s",yazilan);//değişken yazdırdık
 printf(lcd_putc,"\nDOLU");//(\f temizler \n alt satıra geçer)
 }
 else if(data=='C')
 {
 printf(lcd_putc,"\f%s",yazilan);//değişken yazdırdık
 printf(lcd_putc,"\nBOS");//(\f temizler \n alt satıra geçer)
 }
 else if(data=='D')
 {
 printf(lcd_putc,"\f%s",yazilan1);//değişken yazdırdık
 printf(lcd_putc,"\nDOLU");//(\f temizler \n alt satıra geçer)
 }
 else if(data=='E')
 {
 printf(lcd_putc,"\f%s",yazilan1);//değişken yazdırdık
 printf(lcd_putc,"\nBOS");//(\f temizler \n alt satıra geçer)
 }
 else if(data=='F')
 {
 printf(lcd_putc,"\f%s",yazilan2);//değişken yazdırdık
 printf(lcd_putc,"\nDOLU");//(\f temizler \n alt satıra geçer)
 }
 else if(data=='G')
 {
 printf(lcd_putc,"\f%s",yazilan2);//değişken yazdırdık
 printf(lcd_putc,"\nBOS");//(\f temizler \n alt satıra geçer)
 }

 else if(data=='H')
 {
 printf(lcd_putc,"\f%s",yazilan);//değişken yazdırdık
 printf(lcd_putc,"\nSIPARIS YENI");//(\f temizler \n alt satıra geçer)
 }
 else if(data=='I')
 {
 printf(lcd_putc,"\f%s",yazilan);//değişken yazdırdık
 printf(lcd_putc,"\nHESAP");//(\f temizler \n alt satıra geçer)
 }
 else if(data=='J')
 {
 printf(lcd_putc,"\f%s",yazilan1);//değişken yazdırdık
 printf(lcd_putc,"\nSIPARIS YENI");//(\f temizler \n alt satıra geçer)
 }
 else if(data=='K')
 {
 printf(lcd_putc,"\f%s",yazilan1);//değişken yazdırdık
 printf(lcd_putc,"\nHESAP");//(\f temizler \n alt satıra geçer)
 }
 else if(data=='L')
 {
 printf(lcd_putc,"\f%s",yazilan2);//değişken yazdırdık
 printf(lcd_putc,"\nSIPARIS YENI");//(\f temizler \n alt satıra geçer)
 }
 else if(data=='M')
 {
 printf(lcd_putc,"\f%s",yazilan2);//değişken yazdırdık
 printf(lcd_putc,"\nHESAP");//(\f temizler \n alt satıra geçer)
 } 

 }
 }

 }

Recep METE

Alıntı yapılan: ozay34 - 03 Mart 2014, 21:08:09
burda birçok  sorunu çözdüm yardımlarınızla. rf konusunda da yardımcı olursanız sevinirim. ısıste çalışıp devrede deneyince çalışmıyor. Kodlar aşağıdadır.
VERİCİ
#include <16f877A.h>
#fuses  XT, NOPROTECT, NOWDT, PUT
#use delay(clock=4000000)

#use rs232(baud=1200, xmit=PIN_C6, rcv=PIN_C7, parity=N, stop=1)


void main(){

set_tris_b(0xFF);

   while(1){
      if(input(pin_b0))
      {
         while(input(pin_b0));
         putc(0b01010101);
         putc('X');
         putc('A');
         delay_ms(50);
      }
      if(input(pin_b1))
      {
         while(input(pin_b1));
         putc(0b01010101);
         putc('X');
         putc('B');
         delay_ms(50);
      }
}
}

ALICI
#include <16f877A.h>
#fuses XT, NOWDT
#use delay(clock=4000000)

#use rs232(baud=1200, xmit=PIN_C6, rcv=PIN_C7, parity=N, stop=1,)
char alinan;
char data;

void main(){

   while(true)
   {
   

      alinan=getc();
      if(alinan=='X')
      {
         data=getc();
         if(data=='A')
         {
         output_high(pin_b0);
         delay_ms(1000);
           
      }
       if(data=='B')
         {
         output_low(pin_b0);
         delay_ms(1000);
           
      }
   }
           
      }
   

}


Alıcı kısmına "invert" eklersen sorun çözülür.Bende aynı sorunu yaşamıştım.Örn.alıcı kısmına:
#use rs232(baud=1200, xmit=PIN_C6, rcv=PIN_C7, parity=N, stop=1,invert)  Bu şekilde isiste çalışmaz,devrede çalışır.İsiste çalıştırmak için inverti kaldırmalısın.

printf(lcd_putc,"\f  Ne kadar okursan oku, bilgine, yakışır şekilde davranmıyorsan cahilsin demektir.  \n   semfero");d

ozay34

derlerken hata veriyor.nasıl çözülecek.

Recep METE

Alıntı yapılan: ozay34 - 13 Nisan 2014, 23:23:18
derlerken hata veriyor.nasıl çözülecek.
[/quote  ] Hatanın ne olduğunu buraya yazarsan yardimci olabiliriz.
printf(lcd_putc,"\f  Ne kadar okursan oku, bilgine, yakışır şekilde davranmıyorsan cahilsin demektir.  \n   semfero");d