亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? hiddmousedriverdescriptors.c

?? configure HID devices like USB mouse with A91SAM7SE CPU. Inlcude initilization for necessary periphe
?? C
字號:
/* ----------------------------------------------------------------------------
 *         ATMEL Microcontroller Software Support 
 * ----------------------------------------------------------------------------
 * Copyright (c) 2008, Atmel Corporation
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * - Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the disclaimer below.
 *
 * Atmel's name may not be used to endorse or promote products derived from
 * this software without specific prior written permission.
 *
 * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
 * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
 * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * ----------------------------------------------------------------------------
 */

/*
    Title: HIDDMouseDriverDescriptors

    About: Purpose
        Declaration of the descriptors used by the HID device keyboard driver.
*/

//------------------------------------------------------------------------------
//         Headers
//------------------------------------------------------------------------------

#include "HIDDMouseDriverDescriptors.h"
#include "HIDDMouseInputReport.h"
#include <board.h>
#include <usb/common/core/USBDeviceDescriptor.h>
#include <usb/common/core/USBConfigurationDescriptor.h>
#include <usb/common/core/USBInterfaceDescriptor.h>
#include <usb/common/core/USBEndpointDescriptor.h>
#include <usb/common/core/USBStringDescriptor.h>
#include <usb/common/hid/HIDGenericDescriptor.h>
#include <usb/common/hid/HIDDeviceDescriptor.h>
#include <usb/common/hid/HIDInterfaceDescriptor.h>
#include <usb/common/hid/HIDDescriptor.h>
#include <usb/common/hid/HIDReport.h>
#include <usb/common/hid/HIDGenericDesktop.h>
#include <usb/common/hid/HIDLeds.h>
#include <usb/common/hid/HIDButton.h>
#include <usb/device/core/USBDDriverDescriptors.h>

//------------------------------------------------------------------------------
//         Definitions
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
/// \page "HID Mouse Device Descriptor IDs"
/// ...
///
/// !IDs
/// - HIDDMouseDriverDescriptors_PRODUCTID
/// - HIDDMouseDriverDescriptors_VENDORID
/// - HIDDMouseDriverDescriptors_RELEASE

/// Device product ID.
#define HIDDMouseDriverDescriptors_PRODUCTID       0x6200
/// Device vendor ID.
#define HIDDMouseDriverDescriptors_VENDORID        0x03EB
/// Device release number.
#define HIDDMouseDriverDescriptors_RELEASE         0x0100
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
//         Internal types
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
/// List of descriptors that make up the configuration descriptors of a
/// %device using the HID Mouse driver.
//------------------------------------------------------------------------------
typedef struct {

    /// Configuration descriptor.
    USBConfigurationDescriptor configuration;
    /// Interface descriptor.
    USBInterfaceDescriptor interface;
    /// HID descriptor.
    HIDDescriptor hid;
    /// Interrupt IN endpoint descriptor.
    USBEndpointDescriptor interruptIn;

} __attribute__ ((packed)) HIDDMouseDriverConfigurationDescriptors;

//------------------------------------------------------------------------------
//         Internal variables
//------------------------------------------------------------------------------

/// Device descriptor.
static const USBDeviceDescriptor deviceDescriptor = {

    sizeof(USBDeviceDescriptor),
    USBGenericDescriptor_DEVICE,
    USBDeviceDescriptor_USB2_00,
    HIDDeviceDescriptor_CLASS,
    HIDDeviceDescriptor_SUBCLASS,
    HIDDeviceDescriptor_PROTOCOL,
    BOARD_USB_ENDPOINTS_MAXPACKETSIZE(0),
    HIDDMouseDriverDescriptors_VENDORID,
    HIDDMouseDriverDescriptors_PRODUCTID,
    HIDDMouseDriverDescriptors_RELEASE,
    1, // Index of manufacturer description
    2, // Index of product description
    3, // Index of serial number description
    1  // One possible configuration
};

#ifdef BOARD_USB_UDPHS
/// Device qualifier descriptor (high-speed only).
static const USBDeviceQualifierDescriptor qualifierDescriptor = {

    sizeof(USBDeviceQualifierDescriptor),
    USBGenericDescriptor_DEVICEQUALIFIER,
    HIDDeviceDescriptor_CLASS,
    HIDDeviceDescriptor_SUBCLASS,
    HIDDeviceDescriptor_PROTOCOL,
    BOARD_USB_ENDPOINTS_MAXPACKETSIZE(0),
    1, // One possible configuration
    0 // Reserved
};
#endif

/// Configuration descriptor.
static const HIDDMouseDriverConfigurationDescriptors configurationDescriptors = {

    // Configuration descriptor
    {
        sizeof(USBConfigurationDescriptor),
        USBGenericDescriptor_CONFIGURATION,
        sizeof(HIDDMouseDriverConfigurationDescriptors),
        1, // One interface in this configuration
        1, // This is configuration #1
        0, // No associated string descriptor
        BOARD_USB_BMATTRIBUTES,
        USBConfigurationDescriptor_POWER(100)
    },
    // Interface descriptor
    {
        sizeof(USBInterfaceDescriptor),
        USBGenericDescriptor_INTERFACE,
        0, // This is interface #0
        0, // This is alternate setting #0
        1, // One endpoints used
        HIDInterfaceDescriptor_CLASS,
        HIDInterfaceDescriptor_SUBCLASS_NONE,
        HIDInterfaceDescriptor_PROTOCOL_MOUSE,
        0  // No associated string descriptor
    },
    // HID descriptor
    {
        sizeof(HIDDescriptor),
        HIDGenericDescriptor_HID,
        HIDDescriptor_HID1_11,
        0, // Device is not localized, no country code
        1, // One HID-specific descriptor (apart from this one)
        HIDGenericDescriptor_REPORT,
        HIDDMouseDriverDescriptors_REPORTSIZE
    },
    // Interrupt IN endpoint descriptor
    {
        sizeof(USBEndpointDescriptor),
        USBGenericDescriptor_ENDPOINT,
        USBEndpointDescriptor_ADDRESS(
            USBEndpointDescriptor_IN,
            HIDDMouseDriverDescriptors_INTERRUPTIN),
        USBEndpointDescriptor_INTERRUPT,
        sizeof(HIDDMouseInputReport),
        HIDDMouseDriverDescriptors_INTERRUPTIN_POLLING
    }
};

#ifdef BOARD_USB_UDPHS
/// Other-speed configuration descriptor.
static const HIDDMouseDriverConfigurationDescriptors otherSpeedDescriptors = {

    // Configuration descriptor
    {
        sizeof(USBConfigurationDescriptor),
        USBGenericDescriptor_OTHERSPEEDCONFIGURATION,
        sizeof(HIDDMouseDriverConfigurationDescriptors),
        1, // One interface in this configuration
        1, // This is configuration #1
        0, // No associated string descriptor
        BOARD_USB_BMATTRIBUTES,
        USBConfigurationDescriptor_POWER(100)
    },
    // Interface descriptor
    {
        sizeof(USBInterfaceDescriptor),
        USBGenericDescriptor_INTERFACE,
        0, // This is interface #0
        0, // This is alternate setting #0
        2, // Two endpoints used
        HIDInterfaceDescriptor_CLASS,
        HIDInterfaceDescriptor_SUBCLASS_NONE,
        HIDInterfaceDescriptor_PROTOCOL_MOUSE,
        0  // No associated string descriptor
    },
    // HID descriptor
    {
        sizeof(HIDDescriptor),
        HIDGenericDescriptor_HID,
        HIDDescriptor_HID1_11,
        0, // Device is not localized, no country code
        1, // One HID-specific descriptor (apart from this one)
        HIDGenericDescriptor_REPORT,
        HIDDMouseDriverDescriptors_REPORTSIZE
    },
    // Interrupt IN endpoint descriptor
    {
        sizeof(USBEndpointDescriptor),
        USBGenericDescriptor_ENDPOINT,
        USBEndpointDescriptor_ADDRESS(
            USBEndpointDescriptor_IN,
            HIDDMouseDriverDescriptors_INTERRUPTIN),
        USBEndpointDescriptor_INTERRUPT,
        sizeof(HIDDMouseInputReport),
        HIDDMouseDriverDescriptors_INTERRUPTIN_POLLING
    }
};
#endif

/*
    Variables: String descriptors
        languageIdDescriptor - Language ID string descriptor.
        manufacturerDescriptor - Manufacturer name.
        productDescriptor - Product name.
        serialNumberDescriptor - Product serial number.
        stringDescriptors - Array of pointers to string descriptors.
*/
static const unsigned char languageIdDescriptor[] = {

    USBStringDescriptor_LENGTH(1),
    USBGenericDescriptor_STRING,
    USBStringDescriptor_ENGLISH_US
};

static const unsigned char manufacturerDescriptor[] = {

    USBStringDescriptor_LENGTH(5),
    USBGenericDescriptor_STRING,
    USBStringDescriptor_UNICODE('A'),
    USBStringDescriptor_UNICODE('T'),
    USBStringDescriptor_UNICODE('M'),
    USBStringDescriptor_UNICODE('E'),
    USBStringDescriptor_UNICODE('L')
};

static const unsigned char productDescriptor[] = {

    USBStringDescriptor_LENGTH(19),
    USBGenericDescriptor_STRING,
    USBStringDescriptor_UNICODE('A'),
    USBStringDescriptor_UNICODE('T'),
    USBStringDescriptor_UNICODE('M'),
    USBStringDescriptor_UNICODE('E'),
    USBStringDescriptor_UNICODE('L'),
    USBStringDescriptor_UNICODE(' '),
    USBStringDescriptor_UNICODE('A'),
    USBStringDescriptor_UNICODE('T'),
    USBStringDescriptor_UNICODE('9'),
    USBStringDescriptor_UNICODE('1'),
    USBStringDescriptor_UNICODE(' '),
    USBStringDescriptor_UNICODE('H'),
    USBStringDescriptor_UNICODE('I'),
    USBStringDescriptor_UNICODE('D'),
    USBStringDescriptor_UNICODE(' '),
    USBStringDescriptor_UNICODE('M'),
    USBStringDescriptor_UNICODE('O'),
    USBStringDescriptor_UNICODE('U'),
    USBStringDescriptor_UNICODE('S'),
    USBStringDescriptor_UNICODE('E'),
};

static const unsigned char serialNumberDescriptor[] = {

    USBStringDescriptor_LENGTH(12),
    USBGenericDescriptor_STRING,
    USBStringDescriptor_UNICODE('0'),
    USBStringDescriptor_UNICODE('1'),
    USBStringDescriptor_UNICODE('2'),
    USBStringDescriptor_UNICODE('3'),
    USBStringDescriptor_UNICODE('4'),
    USBStringDescriptor_UNICODE('5'),
    USBStringDescriptor_UNICODE('6'),
    USBStringDescriptor_UNICODE('7'),
    USBStringDescriptor_UNICODE('8'),
    USBStringDescriptor_UNICODE('9'),
    USBStringDescriptor_UNICODE('A'),
    USBStringDescriptor_UNICODE('F')
};

static const unsigned char *stringDescriptors[] = {

    languageIdDescriptor,
    manufacturerDescriptor,
    productDescriptor,
    serialNumberDescriptor
};

//------------------------------------------------------------------------------
//         Exported variables
//------------------------------------------------------------------------------

/// List of descriptors used by the HID keyboard driver.
USBDDriverDescriptors hiddMouseDriverDescriptors = {

    &deviceDescriptor,
    (USBConfigurationDescriptor *) &configurationDescriptors,
#ifdef BOARD_USB_UDPHS
    &qualifierDescriptor,
    (USBConfigurationDescriptor *) &otherSpeedDescriptors,
    &deviceDescriptor,
    (USBConfigurationDescriptor *) &configurationDescriptors,
    &qualifierDescriptor,
    (USBConfigurationDescriptor *) &otherSpeedDescriptors,
#else
    0, // No full-speed device qualifier descriptor
    0, // No full-speed other speed configuration
    0, // No high-speed device descriptor
    0, // No high-speed configuration descriptor
    0, // No high-speed device qualifier descriptor
    0, // No high-speed other speed configuration descriptor
#endif
    stringDescriptors,
    4 // Four string descriptors in list
};

/// Report descriptor used by the driver.
const unsigned char hiddReportDescriptor[] = {

    // Global Usage Page
    HIDReport_GLOBAL_USAGEPAGE + 1, HIDGenericDesktop_PAGEID,
    // Collection: Application
    HIDReport_LOCAL_USAGE + 1, HIDGenericDesktop_MOUSE,
    HIDReport_COLLECTION + 1, HIDReport_COLLECTION_APPLICATION,
        // Physical collection: Pointer
        HIDReport_LOCAL_USAGE + 1, HIDGenericDesktop_POINTER,
        HIDReport_COLLECTION + 1, HIDReport_COLLECTION_PHYSICAL,

            // Input report: buttons
            HIDReport_GLOBAL_USAGEPAGE + 1, HIDButton_PAGEID,
            HIDReport_GLOBAL_REPORTCOUNT + 1, 3,
            HIDReport_GLOBAL_REPORTSIZE + 1, 1,
            HIDReport_LOCAL_USAGEMINIMUM + 1, 1,
            HIDReport_LOCAL_USAGEMAXIMUM + 1, 3,
            HIDReport_GLOBAL_LOGICALMINIMUM + 1, 0,
            HIDReport_GLOBAL_LOGICALMAXIMUM + 1, 1,
            HIDReport_INPUT + 1, HIDReport_VARIABLE,    // 3 button bits

            // Input report: padding
            HIDReport_GLOBAL_REPORTCOUNT + 1, 1,
            HIDReport_GLOBAL_REPORTSIZE + 1, 5,
            HIDReport_INPUT + 1, HIDReport_CONSTANT,    // 5 bit padding

            // Input report: pointer
            HIDReport_GLOBAL_USAGEPAGE + 1, HIDGenericDesktop_PAGEID,
            HIDReport_GLOBAL_REPORTSIZE + 1, 8,
            HIDReport_GLOBAL_REPORTCOUNT + 1, 2,
            HIDReport_LOCAL_USAGE + 1, HIDGenericDesktop_X,
            HIDReport_LOCAL_USAGE + 1, HIDGenericDesktop_Y,
            HIDReport_GLOBAL_LOGICALMINIMUM + 1, (unsigned char) -127,
            HIDReport_GLOBAL_LOGICALMAXIMUM + 1, 127,
            HIDReport_INPUT + 1, HIDReport_VARIABLE | HIDReport_RELATIVE,

        HIDReport_ENDCOLLECTION,
    HIDReport_ENDCOLLECTION
};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久一区二区三区四区| 日韩一级片网址| 中文字幕一区二区三区在线播放| 成人午夜电影小说| 亚洲国产精品人人做人人爽| 欧美日韩午夜在线视频| 国产精品一区二区久激情瑜伽| 亚洲丝袜另类动漫二区| 中文字幕不卡在线播放| 日韩欧美一二三四区| 在线观看区一区二| 91免费观看国产| 成人免费av资源| 欧美猛男男办公室激情| 色综合天天视频在线观看| 成人午夜电影小说| 日韩美女视频在线| 亚洲精品国产一区二区三区四区在线| 欧美一级二级三级蜜桃| 欧美国产乱子伦 | 蜜桃av一区二区三区电影| 国产精品高潮呻吟| 亚洲欧洲日韩一区二区三区| 亚洲va在线va天堂| 亚洲成人av中文| 成人午夜av电影| 精品福利视频一区二区三区| 日韩免费观看高清完整版 | 亚洲另类在线一区| 欧美精品 国产精品| 亚洲一区二区三区小说| 自拍偷拍国产亚洲| 久久草av在线| av中文一区二区三区| 波多野结衣在线一区| 色狠狠色噜噜噜综合网| 日韩欧美中文一区二区| 成人激情小说网站| 久久综合久久综合久久| 国产在线国偷精品免费看| 国产成人综合网站| 欧美日韩国产首页| 蜜臀精品一区二区三区在线观看| 91精品福利在线一区二区三区 | 精品国产污网站| 国产在线视频不卡二| 成熟亚洲日本毛茸茸凸凹| 国产亚洲精品7777| 蜜桃一区二区三区四区| 中文字幕av免费专区久久| 欧美伊人久久大香线蕉综合69| 欧美va在线播放| 亚洲午夜一区二区| 亚洲视频精选在线| 日韩欧美aaaaaa| 色婷婷综合久久久久中文| 日韩电影一区二区三区| 91福利在线观看| 紧缚奴在线一区二区三区| 欧美日韩精品一区视频| 免费在线观看日韩欧美| 欧美日韩免费视频| 91色综合久久久久婷婷| 激情综合色丁香一区二区| 亚洲黄网站在线观看| 国产欧美一区二区精品久导航| 亚洲成年人网站在线观看| 亚洲一区二区三区视频在线播放| 91精品国产色综合久久不卡蜜臀| 成人性生交大合| 精品一区免费av| 久久精品国产亚洲高清剧情介绍| 亚洲精品第一国产综合野| 亚洲午夜久久久久久久久久久| 国产欧美精品日韩区二区麻豆天美| 欧美日韩mp4| 欧美成人伊人久久综合网| 精品国免费一区二区三区| 欧美videossexotv100| 精品国产露脸精彩对白| 久久精品视频在线看| 中文字幕巨乱亚洲| 亚洲午夜国产一区99re久久| 精品一区二区在线观看| 国产麻豆欧美日韩一区| 不卡一区二区在线| 欧美男男青年gay1069videost | 亚洲午夜精品网| 久久99国内精品| 国产精品一区二区久久不卡| 欧美亚洲国产一卡| 久久精品人人做人人爽人人| 亚洲欧洲成人自拍| 日本网站在线观看一区二区三区| 经典三级视频一区| 欧美成人免费网站| 亚洲制服丝袜在线| 高清成人免费视频| www.在线成人| 国产精品久久久一本精品| 亚洲高清在线精品| 色综合色综合色综合色综合色综合| 91麻豆精品国产自产在线观看一区| 在线免费亚洲电影| 国产农村妇女毛片精品久久麻豆| 亚洲国产综合色| 色综合天天综合网天天看片| 99精品视频在线免费观看| 97久久久精品综合88久久| 久久久久久麻豆| 国产精品电影一区二区| 久久97超碰国产精品超碰| 日韩精品一区二区三区在线观看 | 久久无码av三级| 免费在线观看精品| 久久影院视频免费| 国产91对白在线观看九色| 国产精品女主播av| 日本不卡视频一二三区| 欧美一区二区女人| 日韩av成人高清| 26uuu另类欧美| 懂色av一区二区在线播放| 欧美激情中文字幕一区二区| 丁香一区二区三区| 一区二区三区不卡在线观看 | 色妞www精品视频| 视频一区二区三区入口| gogogo免费视频观看亚洲一| 国产精品国产三级国产aⅴ无密码| 99久久精品免费观看| 蜜桃视频第一区免费观看| 久久伊人蜜桃av一区二区| 欧美做爰猛烈大尺度电影无法无天| 亚洲成人av一区二区| 国产精品天干天干在观线| 欧美日韩国产区一| 91麻豆.com| 中文字幕av一区二区三区免费看 | 国产成人a级片| 亚洲免费电影在线| 成人午夜视频网站| 99久久国产综合精品女不卡| 在线视频综合导航| 欧美一区中文字幕| 国产蜜臀av在线一区二区三区| 久久精品一区二区| 亚洲综合视频在线观看| 精品一区二区国语对白| 99久久精品费精品国产一区二区| 日精品一区二区| 精品国产网站在线观看| 免费观看在线色综合| 亚洲综合免费观看高清完整版| 色综合色狠狠天天综合色| 欧美日韩视频在线第一区| 一区二区在线看| 欧美性大战久久久久久久| 一区二区三区精品久久久| 亚洲一区二区三区四区的| 欧美私人免费视频| 日韩电影在线一区二区三区| 国产精品免费观看视频| 欧美videofree性高清杂交| 国产91精品一区二区| 久久国产人妖系列| 欧美日韩精品三区| 亚洲成a人v欧美综合天堂下载| 91色乱码一区二区三区| 亚洲欧美激情插 | 91精品免费观看| 蜜臀99久久精品久久久久久软件 | 欧美日韩视频不卡| 亚洲午夜在线电影| 久久久久久久久蜜桃| 国产亚洲欧美日韩俺去了| 成人免费在线视频| 天堂蜜桃一区二区三区| 国产成人av电影在线观看| 精品日韩99亚洲| 国产精品美女久久久久久2018| 欧美一区在线视频| 不卡视频免费播放| 亚洲美腿欧美偷拍| 亚洲卡通欧美制服中文| 国产精品久久久久久久久免费樱桃| 日韩视频一区二区三区 | 国产高清不卡一区二区| 色狠狠桃花综合| 国产精品久久久久久久午夜片| 精品国产免费人成在线观看| 亚洲乱码国产乱码精品精98午夜| 国产一区二区在线视频| 91精品麻豆日日躁夜夜躁| 一区二区三区在线免费视频| 国产乱码精品一区二区三区五月婷| 欧美夫妻性生活| 亚洲专区一二三| 欧美午夜精品电影| 亚洲宅男天堂在线观看无病毒|