![]() |
#1
|
|||
|
|||
![]()
السلام عليكم اخواني الكرام
قمت بعمل مشروع للتحكم في دوائر الكترونية من خلال برنامج اللاب فيو ومدخل اليو أس بي البرنامج والدوائر تعمل بشكل ممتاز ولكن المشكلة انه بمجرد تشغيل الحاسوب يتم ارسال بيانات الى الدائرة الالكترونية قبل أن يفتح الجهاز ويتم تنفيذ البرنامج وشكرا التعديل الأخير تم بواسطة gasem ; 05-24-2015 الساعة 11:54 AM |
#2
|
||||
|
||||
![]() اقتباس:
بيانات التعرف على usb device وبداية الاتصال ليس لها علاقة ببيانات الاتصال بين البرنامج والميكرو كنترولر هذة المشكلة كانت تظهر مع خرج الطابعة ولكن لا اعتقد مع usb ارجو ان توضح اكثر المشكلة مع خالص تحياتى
__________________
![]() اللهم اغفر وارحم اخى ابا عبد الرحمن |
#3
|
|||
|
|||
![]()
const unsigned int USB_VENDOR_ID = 0x1234;
const unsigned int USB_PRODUCT_ID = 0x0001; const char USB_SELF_POWER = 0x80; // Self powered 0xC0, 0x80 bus powered const char USB_MAX_POWER = 50; // Bus power required in units of 2 mA const char HID_INPUT_REPORT_BYTES = 64; const char HID_OUTPUT_REPORT_BYTES = 64; const char USB_TRANSFER_TYPE = 0x03; //0x03 Interrupt const char EP_IN_INTERVAL = 1; const char EP_OUT_INTERVAL = 1; const char USB_INTERRUPT = 1; const char USB_HID_EP = 1; const char USB_HID_RPT_SIZE = 33; /* Device Descriptor */ const struct { char bLength; // bLength - Descriptor size in bytes (12h) char bDescriptorType; // bDescriptorType - The constant DEVICE (01h) unsigned int bcdUSB; // bcdUSB - USB specification release number (BCD) char bDeviceClass; // bDeviceClass - Class Code char bDeviceSubClass; // bDeviceSubClass - Subclass code char bDeviceProtocol; // bDeviceProtocol - Protocol code char bMaxPacketSize0; // bMaxPacketSize0 - Maximum packet size for endpoint 0 unsigned int idVendor; // idVendor - Vendor ID unsigned int idProduct; // idProduct - Product ID unsigned int bcdDevice; // bcdDevice - Device release number (BCD) char iManufacturer; // iManufacturer - Index of string descriptor for the manufacturer char iProduct; // iProduct - Index of string descriptor for the product. char iSerialNumber; // iSerialNumber - Index of string descriptor for the serial number. char bNumConfigurations; // bNumConfigurations - Number of possible configurations } device_dsc = { 0x12, // bLength 0x01, // bDescriptorType 0x0200, // bcdUSB 0x00, // bDeviceClass 0x00, // bDeviceSubClass 0x00, // bDeviceProtocol 8, // bMaxPacketSize0 USB_VENDOR_ID, // idVendor USB_PRODUCT_ID, // idProduct 0x0001, // bcdDevice 0x01, // iManufacturer 0x02, // iProduct 0x00, // iSerialNumber 0x01 // bNumConfigurations }; /* Configuration 1 Descriptor */ const char configDescriptor1[]= { // Configuration Descriptor 0x09, // bLength - Descriptor size in bytes 0x02, // bDescriptorType - The constant CONFIGURATION (02h) 0x29,0x00, // wTotalLength - The number of bytes in the configuration descriptor and all of its subordinate descriptors 1, // bNumInterfaces - Number of interfaces in the configuration 1, // bConfigurationValue - Identifier for Set Configuration and Get Configuration requests 0, // iConfiguration - Index of string descriptor for the configuration USB_SELF_POWER, // bmAttributes - Self/bus power and remote wakeup settings USB_MAX_POWER, // bMaxPower - Bus power required in units of 2 mA // Interface Descriptor 0x09, // bLength - Descriptor size in bytes (09h) 0x04, // bDescriptorType - The constant Interface (04h) 0, // bInterfaceNumber - Number identifying this interface 0, // bAlternateSetting - A number that identifies a descriptor with alternate settings for this bInterfaceNumber. 2, // bNumEndpoint - Number of endpoints supported not counting endpoint zero 0x03, // bInterfaceClass - Class code 0, // bInterfaceSubclass - Subclass code 0, // bInterfaceProtocol - Protocol code 0, // iInterface - Interface string index // HID Class-Specific Descriptor 0x09, // bLength - Descriptor size in bytes. 0x21, // bDescriptorType - This descriptor's type: 21h to indicate the HID class. 0x01,0x01, // bcdHID - HID specification release number (BCD). 0x00, // bCountryCode - Numeric expression identifying the country for localized hardware (BCD) or 00h. 1, // bNumDescriptors - Number of subordinate report and physical descriptors. 0x22, // bDescriptorType - The type of a class-specific descriptor that follows USB_HID_RPT_SIZE,0x00, // wDescriptorLength - Total length of the descriptor identified above. // Endpoint Descriptor 0x07, // bLength - Descriptor size in bytes (07h) 0x05, // bDescriptorType - The constant Endpoint (05h) USB_HID_EP | 0x80, // bEndpointAddress - Endpoint number and direction USB_TRANSFER_TYPE, // bmAttributes - Transfer type and supplementary information 0x40,0x00, // wMaxPacketSize - Maximum packet size supported EP_IN_INTERVAL, // bInterval - Service interval or NAK rate // Endpoint Descriptor 0x07, // bLength - Descriptor size in bytes (07h) 0x05, // bDescriptorType - The constant Endpoint (05h) USB_HID_EP, // bEndpointAddress - Endpoint number and direction USB_TRANSFER_TYPE, // bmAttributes - Transfer type and supplementary information 0x40,0x00, // wMaxPacketSize - Maximum packet size supported EP_OUT_INTERVAL // bInterval - Service interval or NAK rate }; const struct { char report[USB_HID_RPT_SIZE]; }hid_rpt_desc = { {0x06, 0x00, 0xFF, // Usage Page = 0xFF00 (Vendor Defined Page 1) 0x09, 0x01, // Usage (Vendor Usage 1) 0xA1, 0x01, // Collection (Application) // Input report 0x19, 0x01, // Usage Minimum 0x29, 0x40, // Usage Maximum 0x15, 0x00, // Logical Minimum (data bytes in the report may have minimum value = 0x00) 0x26, 0xFF, 0x00, // Logical Maximum (data bytes in the report may have maximum value = 0x00FF = unsigned 255) 0x75, 0x08, // Report Size: 8-bit field size 0x95, HID_INPUT_REPORT_BYTES,// Report Count 0x81, 0x02, // Input (Data, Array, Abs) // Output report 0x19, 0x01, // Usage Minimum 0x29, 0x40, // Usage Maximum 0x75, 0x08, // Report Size: 8-bit field size 0x95, HID_OUTPUT_REPORT_BYTES,// Report Count 0x91, 0x02, // Output (Data, Array, Abs) 0xC0} // End Collection }; //Language code string descriptor const struct { char bLength; char bDscType; unsigned int string[1]; } strd1 = { 4, 0x03, {0x0409} }; //Manufacturer string descriptor const struct{ char bLength; char bDscType; unsigned int string[18]; }strd2={ 38, //sizeof this descriptor string 0x03, {'E','n','g',' ','H','a','i','t','h','a','m',' ','k','h','a','i','r','y'} }; //Product string descriptor const struct{ char bLength; char bDscType; unsigned int string[12]; }strd3={ 26, //sizeof this descriptor string 0x03, {'S','C','A','D','A',' ','S','y','s','t','e','m'} }; //Array of configuration descriptors const char* USB_config_dsc_ptr[1]; //Array of string descriptors const char* USB_string_dsc_ptr[3]; void USB_Init_Desc(){ USB_config_dsc_ptr[0] = &configDescriptor1; USB_string_dsc_ptr[0] = (const char*)&strd1; USB_string_dsc_ptr[1] = (const char*)&strd2; USB_string_dsc_ptr[2] = (const char*)&strd3; } هذا كود usb #include"USBdsc.c" unsigned char read_buff[64] absolute 0x500; unsigned char write_buff[64] absolute 0x540; GET_Digital_Data(); void interrupt(){ USB_Interrupt_Proc(); // USB servicing is done inside the interrupt } void main(){ //CMCON = 0x07; // Disable comparators TRISD=0x00; TRISB=0x00; PORTD=0x00; PORTb=0x00;TRISE=0x0F; HID_Enable(&read_buff,&write_buff); // Enable HID communication //TRISD=0x00; TRISB=0x00; PORTD=0x00; PORTb=0x00;TRISE=0x0F; while(1){ //Read From USB HID_Read(); PORTd=read_buff[0]; GET_Digital_Data(); HID_Write(&write_buff,17); delay_ms(1); //End Communication } } GET_Digital_Data(){ //Binary Represntation of Switches Value write_buff[16]= PORTd ; //0->255 decimal Value(1 Byte)} } وهذا البرانج الرئيسي |
#4
|
|||
|
|||
![]()
هذا البرنامج في الاصل للمهندس هيثم خيري تم تعديله حسب حاجتي
يعمل بشكل ممتاز بعد تنفيذ البرنامج ويخرج مخرجات على بورت الدي مع بداية تشغيل الحاسوب وهذه هي المشكلة |
#5
|
|||
|
|||
![]()
وهذا رابط المشروع الاصلي للاخ المهندس هيثم خيري
http://www.dbaasco.com/vb/showthread.php?t=7481 |
#6
|
||||
|
||||
![]() اقتباس:
قبل البيانات وتحقق منهم فى البرنامج مثال //Read From USB GET_Digital_Data();HID_Read(); if(read_buff[0]=='D' &&read_buff[1]=='A' ) { PORTd=read_buff[2]; HID_Write(&write_buff,17); delay_ms(1); } وغير فى برنامج LabVIEW بما يتناسب مع هذا التغيير
__________________
![]() اللهم اغفر وارحم اخى ابا عبد الرحمن |
#7
|
|||
|
|||
![]()
أنا عاجز عن شكرك
تم حل المشكلة |
#8
|
||||
|
||||
![]()
الشكر لله
بالتوفيق الدائم ان شاء الله
__________________
![]() اللهم اغفر وارحم اخى ابا عبد الرحمن |
![]() |
مواقع النشر (المفضلة) |
أدوات الموضوع | |
انواع عرض الموضوع | |
|
|