Jump to content

daibangden

Members
  • Posts

    1
  • Joined

  • Last visited

    Never

daibangden's Achievements

Newbie

Newbie (1/14)

0

Reputation

  1. I use labview 8.5.1 to communicate with microcontroler (PIC 18F4550).I programmed PIC by MirkoC, use HID Library for USB communication. I also use NI_VISA Driver wizard for USB on my PIC, and the labview had recognized it. When i communcate Labview with PIC by USB_RAW, I can write data form Labview to PIC but can't read data from PIC to Labview. Could u help me to solve the problem. Thanks all! I also use temple of Find example in labview usb raw but it still like it. T_T It's the first time i post in forum so sorry how can insert image? maybe my E not good! Thanks again! This is the code C for microcontroler: unsigned char Reader[64], Writer[64];void interrupt(){ HID_InterruptProc(); // Keep alive TMR0L = 100; // Re-load TMR0L INTCON.TMR0IF = 0; // Re-enable TMR0 interrupts}//=============================================================void main(){ ADCON1 = 0; // Set inputs as analog, Ref=+5V ADCON2 = 0xA6; TRISA = 0xFF; // Set PORT A as inputs INTCON = 0; INTCON2 = 0xF5; INTCON3 = 0xC0; RCON.IPEN = 0; PIE1 = 0; PIE2 = 0; PIR1 = 0; PIR2 = 0; T0CON = 0x47; // Prescaler = 256 TMR0L = 100; // Timer count is 256-156 = 100 INTCON.TMR0IE = 1; // Enable T0IE T0CON.TMR0ON = 1; // Turn Timer 0 ON INTCON = 0xE0; // Enable interrupts Hid_Enable(&Reader, &Writer); Lcd_Config(&PORTD,7,5,6,1,2,3,4); // SETUP CHO LCD Lcd_Cmd(LCD_CLEAR); // Clear display Lcd_Cmd(LCD_CURSOR_OFF); // Cursor off Lcd_Out(1,1,"WRITE DATA TO LABVIEW");//============================================================= while(1) { Writer[0] = 'A'; Writer[1] = 'B'; Writer[2] = 'C'; Hid_Write(&Writer,3); }Hid_Disable();} another code include form this program #include "Definit.h"#include "VARs.h"unsigned char const HID_INPUT_REPORT_BYTES = 3;unsigned char const HID_OUTPUT_REPORT_BYTES = 3;unsigned char const HID_FEATURE_REPORT_BYTES = 2;unsigned char const NUM_ENDPOINTS = 2;unsigned char const ConfigDescr_wTotalLength = USB_CONFIG_DESCRIPTOR_LEN + USB_INTERF_DESCRIPTOR_LEN + USB_HID_DESCRIPTOR_LEN + (NUM_ENDPOINTS * USB_ENDP_DESCRIPTOR_LEN);unsigned char const HID_ReportDesc_len = 47;unsigned char const Low_HID_ReportDesc_len = HID_ReportDesc_len;unsigned char const High_HID_ReportDesc_len = HID_ReportDesc_len >> 8;unsigned char const Low_HID_PACKET_SIZE = HID_PACKET_SIZE;unsigned char const High_HID_PACKET_SIZE = HID_PACKET_SIZE >> 8;unsigned char const DescTables[USB_DEVICE_DESCRIPTOR_ALL_LEN*2] = {// Device Descriptor USB_DEVICE_DESCRIPTOR_LEN, 0, // bLength - Length of Device descriptor (always 0x12) USB_DEVICE_DESCRIPTOR_TYPE, 0, // bDescriptorType - 1 = DEVICE descriptor 0x00, 0, // bcdUSB - USB revision 2.00 (low byte) 0x02, 0, // (high byte) 0x00, 0, // bDeviceClass - Zero means each interface operates independently (class code in the interface descriptor) 0x00, 0, // bDeviceSubClass 0x00, 0, // bDeviceProtocol EP0_PACKET_SIZE, 0, // bMaxPacketSize0 - maximum size of a data packet for a control transfer over EP0 0x03, 0, // idVendor - Vendor ID (low byte) 0x17, 0, // (high byte) 0x84, 0, // idProduct - Product ID (low byte) 0x19, 0, // (high byte) 0x01, 0, // bcdDevice - ( low byte) 0x00, 0, // (high byte) 0x01, 0, // iManufacturer - String1 0x02, 0, // iProduct - String2 0x00, 0, // iSerialNumber - ( None ) 0x01, 0, // bNumConfigurations - 1// Configuration Descriptor USB_CONFIG_DESCRIPTOR_LEN, 0, // bLength - Length of Configuration descriptor (always 0x09) USB_CONFIG_DESCRIPTOR_TYPE, 0, // bDescriptorType - 2 = CONFIGURATION descriptor ConfigDescr_wTotalLength, 0, // wTotalLength - Total length of this config. descriptor plus the interface and endpoint descriptors that are part of the configuration. 0x00, 0, // ( high byte) 0x01, 0, // bNumInterfaces - Number of interfaces 0x01, 0, // bConfigurationValue - Configuration Value 0x00, 0, // iConfiguration - String Index for this configuration ( None ) 0xA0, 0, // bmAttributes - attributes - "Bus powered" and "Remote wakeup" 50, 0, // MaxPower - bus-powered draws 50*2 mA from the bus.// Interface Descriptor USB_INTERF_DESCRIPTOR_LEN, 0, // bLength - Length of Interface descriptor (always 0x09) USB_INTERFACE_DESCRIPTOR_TYPE, 0, // bDescriptorType - 4 = INTERFACE descriptor 0x00, 0, // bInterfaceNumber - Number of interface, 0 based array 0x00, 0, // bAlternateSetting - Alternate setting NUM_ENDPOINTS, 0, // bNumEndPoints - Number of endpoints used in this interface 0x03, 0, // bInterfaceClass - assigned by the USB 0x00, 0, // bInterfaceSubClass - Not A boot device 0x00, 0, // bInterfaceProtocol - none 0x00, 0, // iInterface - Index to string descriptor that describes this interface ( None )// HID Descriptor USB_HID_DESCRIPTOR_LEN, 0, // bLength - Length of HID descriptor (always 0x09) USB_HID_DESCRIPTOR_TYPE, 0, // bDescriptorType - 0x21 = HID descriptor 0x01, 0, // HID class release number (1.01) 0x01, 0, 0x00, 0, // Localized country code (none) 0x01, 0, // # of HID class descriptor to follow (1) 0x22, 0, // Report descriptor type (HID) Low_HID_ReportDesc_len, 0, High_HID_ReportDesc_len, 0,// EP1_RX Descriptor USB_ENDP_DESCRIPTOR_LEN, 0, // bLength - length of descriptor (always 0x07) USB_ENDPOINT_DESCRIPTOR_TYPE, 0, // bDescriptorType - 5 = ENDPOINT descriptor 0x81, 0, // bEndpointAddress - In, EP1 USB_ENDPOINT_TYPE_INTERRUPT, 0, // bmAttributes - Endpoint Type - Interrupt Low_HID_PACKET_SIZE, 0, // wMaxPacketSize - max packet size - low order byte High_HID_PACKET_SIZE, 0, // - max packet size - high order byte 1, 0, // bInterval - polling interval (1 ms)// EP1_TX Descriptor USB_ENDP_DESCRIPTOR_LEN, 0, // bLength - length of descriptor (always 0x07) USB_ENDPOINT_DESCRIPTOR_TYPE, 0, // bDescriptorType - 5 = ENDPOINT descriptor 0x01, 0, // bEndpointAddress - Out, EP1 USB_ENDPOINT_TYPE_INTERRUPT, 0, // bmAttributes - Endpoint Type - Interrupt Low_HID_PACKET_SIZE, 0, // wMaxPacketSize - max packet size - low order byte High_HID_PACKET_SIZE, 0, // - max packet size - high order byte 1, 0, // bInterval - polling interval (1 ms)// HID_Report Descriptor 0x06, 0, // USAGE_PAGE (Vendor Defined) 0xA0, 0, 0xFF, 0, 0x09, 0, // USAGE ID (Vendor Usage 1) 0x01, 0, 0xA1, 0, // COLLECTION (Application) 0x01, 0,// The Input report 0x09, 0, // USAGE ID - Vendor defined 0x03, 0, 0x15, 0, // LOGICAL_MINIMUM (0) 0x00, 0, 0x26, 0, // LOGICAL_MAXIMUM (255) 0x00, 0, 0xFF, 0, 0x75, 0, // REPORT_SIZE (8) 0x08, 0, 0x95, 0, // REPORT_COUNT (2) HID_INPUT_REPORT_BYTES, 0, 0x81, 0, // INPUT (Data,Var,Abs) 0x02, 0,// The Output report 0x09, 0, // USAGE ID - Vendor defined 0x04, 0, 0x15, 0, // LOGICAL_MINIMUM (0) 0x00, 0, 0x26, 0, // LOGICAL_MAXIMUM (255) 0x00, 0, 0xFF, 0, 0x75, 0, // REPORT_SIZE (8) 0x08, 0, 0x95, 0, // REPORT_COUNT (2) HID_OUTPUT_REPORT_BYTES, 0, 0x91, 0, // OUTPUT (Data,Var,Abs) 0x02, 0,// The Feature report 0x09, 0, // USAGE ID - Vendor defined 0x05, 0, 0x15, 0, // LOGICAL_MINIMUM (0) 0x00, 0, 0x26, 0, // LOGICAL_MAXIMUM (255) 0x00, 0, 0xFF, 0, 0x75, 0, // REPORT_SIZE (8) 0x08, 0, 0x95, 0, // REPORT_COUNT (2) HID_FEATURE_REPORT_BYTES, 0, 0xB1, 0, // FEATURE (Data,Var,Abs) 0x02, 0,// End Collection 0xC0, 0 // END_COLLECTION};//******************************************************************************unsigned char const LangIDDescr[8] = {0x04,0,USB_STRING_DESCRIPTOR_TYPE,0, 0x09, 0, // LangID (0x0409) - Low 0x04, 0 // - High};//******************************************************************************unsigned char const ManufacturerDescr[44] = {22,0,USB_STRING_DESCRIPTOR_TYPE,0, 'D', 0, 0, 0, 'U', 0, 0, 0, 'Y', 0, 0, 0, '_', 0, 0, 0, 'N', 0, 0, 0, 'G', 0, 0, 0, 'U', 0, 0, 0, 'Y', 0, 0, 0, 'E', 0, 0, 0, 'N', 0, 0, 0 };unsigned char const ProductDescr[36] = {18,0,USB_STRING_DESCRIPTOR_TYPE,0, 'C', 0, 0, 0, 'A', 0, 0, 0, 'R', 0, 0, 0, 'D', 0, 0, 0, '_', 0, 0, 0, 'U', 0, 0, 0, 'S', 0, 0, 0, 'B', 0, 0, 0 };unsigned char const StrUnknownDescr[4] = {2,0,USB_STRING_DESCRIPTOR_TYPE,0};void InitUSBdsc(){Byte_tmp_0[0] = NUM_ENDPOINTS;Byte_tmp_0[0] = ConfigDescr_wTotalLength;Byte_tmp_0[0] = HID_ReportDesc_len;Byte_tmp_0[0] = Low_HID_ReportDesc_len;Byte_tmp_0[0] = High_HID_ReportDesc_len;Byte_tmp_0[0] = Low_HID_PACKET_SIZE;Byte_tmp_0[0] = High_HID_PACKET_SIZE;DescTables;LangIDDescr;ManufacturerDescr;ProductDescr;StrUnknownDescr;}
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.