USB

Programınız nedir. Kodlarınıza bir bakalım.
 
Kod:
#include <18F4550.h>
#device ADC=10
#fuses HSPLL,USBDIV,PLL2,PUT,CPUDIV1,VREGEN,NOWDT,NOPROTECT,NOLVP,NODEBUG,NOMCLR
#use delay(clock=48000000)
//#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL2,CPUDIV1,VREGEN,NOBROWNOUT // 8MHZ
//#use delay(clock=48000000)
#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> 
//////////////
#use fast_io(c)
/////////////
//#define low   output_low(PIN_C1)
//#define high  output_high(PIN_C2)
#define UcNokta1       1
#define servono        paket[0]
#define hata           paket[1]
#define port_durum     paket[2]
#define sure           paket[3]
/////////////
unsigned int8 paket[64];
int8 giden_paket[32];
//int8 x,y,z;
void sola();
void dur();
void sagadon();
void main(void)
{      setup_timer_0(RTCC_INTERNAL);
   setup_timer_1(T1_DISABLED); 
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_ccp1(CCP_OFF);   
   setup_vref(FALSE);
   setup_CCP1(CCP_OFF);     
   setup_CCP2(CCP_OFF); 
   set_tris_c(0x00011000);
  output_c(0b00000011);
 
 
   usb_init();                   
   usb_task();                   
   usb_wait_for_enumeration();         //Cihaz, hazır olana kadar bekle
    
   if(usb_enumerated()) 
      output_high(pin_d0);
   for (;;)
   {
      while(usb_enumerated())
      {
 
         if (usb_kbhit(1))             //Eğer pc'den yeni bir paket geldiyse
         {       
         usb_get_packet(UcNokta1, paket, 64); //paketi oku
          
// SERVO MOTORU SAG-SOL-ORTA HAKARET ETTIRIYORUZ
switch(sure)    // Paketin ilk elemanındaki komutu oku ve ilgili göreve git
{
case 'A':
   //    sola(); 
    
      output_low(PIN_C1);
      output_high(PIN_C2);
      delay_us(500);
        usb_put_packet(1, giden_paket, 64, USB_DTS_TOGGLE);
      break;
                          
case 'B':
    
//    sagadon();
       output_high(PIN_C1);
        output_low(PIN_C2);
      delay_us(500);
        usb_put_packet(1, giden_paket, 64, USB_DTS_TOGGLE);
      break;
    
    
   case 'C':
//       dur();
       output_high(PIN_C1);
       output_high(PIN_C2);
       delay_us(500);
         usb_put_packet(1, giden_paket, 64, USB_DTS_TOGGLE);
      break;
//////////////////////////////////////////
}}}}}

bu beım asıl projem
 
Moderatör tarafında düzenlendi:
USB lib dosyalarınızın birinde PID ve HID tanımlamaları olacak bunlar pc programınız ile uyuşmaz ise çalışmaz.
 
Bunu nasıl yapıcam tanittiktan sonra kütüphaneyi eklememe mi gerekiyor
 
usb_driver.h içinde
Altı çizgili yazdığım yer pic micro için

Kod:
const char USB_DEVICE_DESC[USB_DESC_DEVICE_LEN] ={
      //starts of with device configuration. only one possible
         USB_DESC_DEVICE_LEN, //the length of this report   ==1
         0x01, //the constant DEVICE (DEVICE 0x01)  ==2
         0x00,0x02, //usb version in bcd
         0x00, //class code ==5
         0x00, //subclass code ==6
         0x00, //protocol code ==7
         USB_MAX_EP0_PACKET_LENGTH, //max packet size for endpoint 0. (SLOW SPEED SPECIFIES 8) ==8
         0x11,0x11, //vendor id
         0x11,0x11, //product id
         0x00,0x01, //device release number  ==13,14
         0x01, //index of string description of manufacturer. therefore we point to string_1 array (see below)  ==15
         0x02, //index of string descriptor of the product  ==16
         0x00, //index of string descriptor of serial number  ==17
         USB_NUM_CONFIGURATIONS  //number of possible configurations  ==18
   };

//---------------------------------------------------------------------------------------

pc de C# içinde altaki Altı çizgili yazdığım yer kod ile aynı olmalı
Kod:
 this.usbHidPort1.ProductId = Int32.Parse("1111", System.Globalization.NumberStyles.HexNumber);
            this.usbHidPort1.VendorId = Int32.Parse("1111", System.Globalization.NumberStyles.HexNumber);
            usbHidPort1.CheckDevicePresent();

Çizgili ve renkli yaptım ama kod içinde olduğundan renklandirmedi. Ama durum belli.
 
Moderatör tarafında düzenlendi:
tamam teşekür ederim peki bu kütüphaneyi microchip kendi sayfasında bulabilir miyim

ccs c de yazdım kodu fark etmez degil mi
 
Moderatör tarafında düzenlendi:
kod zaten ccs de bir ara uğraştım çalışan bir kodu pic18f4550 bulup denemem lazım.
 
tamam çok teşekkür edrim
 

Forum istatistikleri

Konular
128,837
Mesajlar
920,888
Kullanıcılar
450,934
Son üye
altandomx

Yeni konular

Geri
Üst