USB HİD PİC 18F45K50 için

FesaTR

Üye
Katılım
11 Haz 2019
Mesajlar
17
Puanları
3
Yaş
23
Merhaba;

Amacım potansiyometreden gelen analog değeri pcye göndermek.
İnternette araştırarak en son böyle bir yazılım yapabildim. Ama pcye usb ile bağlandığım zaman USB AYGITI TANINAMADI yazıyor. bu soruna çözüm getirebilecek olan var mı?

Kod:
#include <18F45K50.h>

#device ADC= 10

#fuses NOCPUDIV, PLLEN, PLL3X, HSH, PRIMARY, NOIESO, NOFCMEN



#use delay(crystal = 48000000)



#include <stdio.h>

#include <stdlib.h>

#include <string.h>



#define USB_HID_DEVICE  TRUE //Tells the CCS PIC USB firmware to include HID handling code.

#define USB_EP1_TX_ENABLE  USB_ENABLE_INTERRUPT   //turn on EP1 for IN bulk/interrupt transfers

#define USB_EP1_TX_SIZE    64  //Numero de byte de envio (maximo 64 bytes)

#define USB_EP1_RX_ENABLE  USB_ENABLE_INTERRUPT   //turn on EP1 for OUT bulk/interrupt transfers

#define USB_EP1_RX_SIZE    64  //Numero de byte de Recepcion (maximo 64 bytes)



#define USB_CONFIG_PID 0001

#define USB_CONFIG_VID 4660



#use FIXED_IO( D_outputs=PIN_D3,PIN_D1 )

#define drksyn   PIN_A0

#define gaz      PIN_A1

#define led1     PIN_D1

#define led2     PIN_D3



#include <lcd.c>

#include <pic18_usb.h>

#include <USB_Konfigurasyon.h>

#include <One_Wire.c>

#include <usb_desc_hid.h>

#include <usb.c>



unsigned int a;

unsigned int8 gelen_paket[64];

unsigned int8 giden_paket[64];



#INT_EXT

void DRS()

{

   output_low(led2);

   output_low(led2);

   delay_ms(2000);

}



void main()

{

   set_tris_a(0x03);

   set_tris_d(0x09);

   set_tris_b(0xFF);

   output_d(0x00);

 

   setup_adc(ADC_CLOCK_DIV_2);

   setup_adc_ports(sAN0|sAN1);

 

   enable_interrupts(global);                 

   enable_interrupts(INT_EXT);               

 

   usb_init();

   usb_task();

   usb_wait_for_enumeration();

 

while(TRUE)

{

      while(usb_enumerated())

      {

       //if (usb_kbhit(1))             //Eğer pc'den yeni bir paket geldiyse

         //{       

            usb_get_packet(1, gelen_paket, 64); //paketi oku   

         //}

    

         a = read_adc();

    

         output_high(led1);

         delay_ms(a);

         output_low(led1);

    

         output_high(led2);

         delay_ms(a);

         output_low(led2);

        

         usb_put_packet(1, giden_paket,64, USB_DTS_TOGGLE);

         delay_ms(20); 

      }

   }

}
 
Moderatör tarafında düzenlendi:

silvestir

Uzman Üye
Katılım
10 Ağu 2011
Mesajlar
1,703
Puanları
208
Ezbere yapılan hiçbir şey calismaz
 
Konu Sah
F

FesaTR

Üye
Katılım
11 Haz 2019
Mesajlar
17
Puanları
3
Yaş
23
Ezbere yapılan hiçbir şey calismaz
Peki nasıl yapabilirim. Buralardaki yanlışlarım neler? Söyleyin düzeltim
 

silvestir

Uzman Üye
Katılım
10 Ağu 2011
Mesajlar
1,703
Puanları
208
Devrede kaç MHz kristal var
 

hearthief

Paylaşımcı üye
Katılım
1 Mar 2017
Mesajlar
1,202
Puanları
108
bilgisayar tarafında bu cihazla iletişim kuran program ve dll gibi driver dosyaları olması gerekir, aksi taktirde devren usb girişini sadece şarj için kullanır ileri gidemezsin..

rs232, seri port bunlara bir bak işine yarar belki..
 
Konu Sah
F

FesaTR

Üye
Katılım
11 Haz 2019
Mesajlar
17
Puanları
3
Yaş
23

silvestir

Uzman Üye
Katılım
10 Ağu 2011
Mesajlar
1,703
Puanları
208
10mhz kristalle olmaz. 4 un katları olması lazım. 4 - 16 - 20 gibi
 

Sponsor Bağlantı

Forum istatistikleri

Konular
105,988
Mesajlar
746,639
Kullanıcılar
393,894
Son üye
Omerususjs

Yeni konular

Üst