18f4550 seri veya rf (acil yardım)

tenam12

Üye
Katılım
1 Ocak 2018
Mesajlar
1
Puanları
1
Yaş
44
18f4550 kullanarak bilgisayara usb bağlantısı yapıyorum c# ile yazdığım yazılımla rf veya 18f4550 pic'ine bağlı bir picten veri almak istiyorum gönderdiğim sayılar yerine daha farklı sayılar geliyor... tespitim bir hız farkı var.. çünkü 18f baud düşürüp diğerini yükseltince sayılar benim gönderdiğim değere yaklaşıyor.. haftalardır uğraşıyorum lütfen bir yardım eli... usb rf alıcı yapmak istiyorum etraftan gelen verileri bir yazılımla değerlendiriyorum... kodları yapıştırıyorum...

alıcı:
Kod:
#include <18F4550.h>
#device ADC=10
#fuses XTPLL,MCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,CPUDIV1,PLL1,VREGEN,NOPBADEN  //4mh
#use delay(clock=4000000)
#use rs232(baud=9600,rcv=PIN_C7,bits=8)
#define USB_HID_DEVICE     TRUE            
#define USB_EP1_TX_ENABLE  USB_ENABLE_INTERRUPT //Uçnokta1'de Kesme transferi aktif
#define USB_EP1_RX_ENABLE  USB_ENABLE_INTERRUPT  
#define USB_EP1_TX_SIZE    64                 //Uçnokta1 için maksimum alınacak ve gonderilecek
#define USB_EP1_RX_SIZE    64                 //veri boyutu (64 byte)
#include <pic18_usb.h>    
#include "USB_Konfigurasyon.h"               //USB konfigurasyon bilgileri bu dosyadadır.
#include <usb.c>  
//////////////

/////////////
#define UcNokta1       1
#define usb_durum      paket[0]
#define hata           paket[1]
#define port_durum     paket[2]
#define kontrol        paket[3]
#define bekle          paket[4]

/////////////
unsigned int8 paket[64];
unsigned int8 a,b,c,d,k=0;
void main(void)
{  

   usb_init();
   usb_task();    
   usb_wait_for_enumeration();         //Cihaz, hazır olana kadar bekle
     
 while(TRUE)
  {    

  if(usb_enumerated())
    {
a=getc();
b=getc();
c=getc();
d=getc();

 
 
    k++;
       if (usb_kbhit(1))             //Eğer pc'den yeni bir paket geldiyse
         {        
           usb_get_packet(UcNokta1, paket, 64);
       
             switch(kontrol)              // Paketin ilk elemanındaki komutu oku ve ilgili göreve git
               {
                 case 'o':  
                    port_durum=8;
                    usb_durum=9;
                    paket[5]=a;
                    paket[6]=b;
                    paket[7]=c;
                    paket[8]=d;
                    paket[9]=k;
                    hata=input_b();
                    usb_put_packet(UcNokta1, paket, 64, USB_DTS_TOGGLE);//64
                    break;
                 
                         
                 
               }
         }
      }
   }
}

verici:
Kod:
#include <12F675.h>
#fuses NOWDT, NOMCLR, BROWNOUT,XT,INTRC_IO
#use delay(clock=4000000)
#use rs232(baud=9600,xmit=PIN_A1,bits=8)



#define GP0 PIN_A0
#define GP1 PIN_A1
#define GP2 PIN_A2
#define GP3 PIN_A3
#define GP4 PIN_A4
#define GP5 PIN_A5


void main()
{

output_HIGH(pin_a0);
delay_ms(100);
output_LOW(pin_a0);
delay_ms(100);
output_HIGH(pin_a0);

   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_OFF);
   setup_timer_1(T1_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_comparator(NC_NC);

while ( TRUE ) // blink LED {

 {


putc(12);
putc(13);
putc(14);
putc(15);





}
}
 

Forum istatistikleri

Konular
128,164
Mesajlar
915,594
Kullanıcılar
449,927
Son üye
yusuf2023

Yeni konular

Geri
Üst