⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usbconfig.h

📁 MEGA8做的USB下载线avrusb-20081126
💻 H
📖 第 1 页 / 共 2 页
字号:
/* Name: usbconfig.h * Project: AVR USB driver * Author: Christian Starkjohann * Creation Date: 2005-04-01 * Tabsize: 4 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt) * This Revision: $Id: usbconfig-prototype.h 692 2008-11-07 15:07:40Z cs $ */#ifndef __usbconfig_h_included__#define __usbconfig_h_included__/*General Description:This file is an example configuration (with inline documentation) for the USBdriver. It configures AVR-USB for USB D+ connected to Port D bit 2 (which isalso hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You maywire the lines to any other port, as long as D+ is also wired to INT0 (or anyother hardware interrupt, as long as it is the highest level interrupt, seesection at the end of this file).*//* ---------------------------- Hardware Config ---------------------------- */#define USB_CFG_IOPORTNAME      D/* This is the port where the USB bus is connected. When you configure it to * "B", the registers PORTB, PINB and DDRB will be used. */#define USB_CFG_DMINUS_BIT      4/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected. * This may be any bit in the port. */#define USB_CFG_DPLUS_BIT       2/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected. * This may be any bit in the port. Please note that D+ must also be connected * to interrupt pin INT0! [You can also use other interrupts, see section * "Optional MCU Description" below, or you can connect D- to the interrupt, as * it is required if you use the USB_COUNT_SOF feature. If you use D- for the * interrupt, the USB interrupt will also be triggered at Start-Of-Frame * markers every millisecond.] */#define USB_CFG_CLOCK_KHZ       (F_CPU/1000)/* Clock rate of the AVR in MHz. Legal values are 12000, 12800, 15000, 16000, * 16500 and 20000. The 12.8 MHz and 16.5 MHz versions of the code require no * crystal, they tolerate +/- 1% deviation from the nominal frequency. All * other rates require a precision of 2000 ppm and thus a crystal! * Default if not specified: 12 MHz *//* ----------------------- Optional Hardware Config ------------------------ *//* #define USB_CFG_PULLUP_IOPORTNAME   D *//* If you connect the 1.5k pullup resistor from D- to a port pin instead of * V+, you can connect and disconnect the device from firmware by calling * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h). * This constant defines the port on which the pullup resistor is connected. *//* #define USB_CFG_PULLUP_BIT          4 *//* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined * above) where the 1.5k pullup resistor is connected. See description * above for details. *//* --------------------------- Functional Range ---------------------------- */#define USB_CFG_HAVE_INTRIN_ENDPOINT    0/* Define this to 1 if you want to compile a version with two endpoints: The * default control endpoint 0 and an interrupt-in endpoint (any other endpoint * number). */#define USB_CFG_HAVE_INTRIN_ENDPOINT3   0/* Define this to 1 if you want to compile a version with three endpoints: The * default control endpoint 0, an interrupt-in endpoint 3 (or the number * configured below) and a catch-all default interrupt-in endpoint as above. * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature. */#define USB_CFG_EP3_NUMBER              3/* If the so-called endpoint 3 is used, it can now be configured to any other * endpoint number (except 0) with this macro. Default if undefined is 3. *//* #define USB_INITIAL_DATATOKEN           USBPID_DATA1 *//* The above macro defines the startup condition for data toggling on the * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1. * Since the token is toggled BEFORE sending any data, the first packet is * sent with the oposite value of this configuration! */#define USB_CFG_IMPLEMENT_HALT          0/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature * for endpoint 1 (interrupt endpoint). Although you may not need this feature, * it is required by the standard. We have made it a config option because it * bloats the code considerably. */#define USB_CFG_SUPPRESS_INTR_CODE      0/* Define this to 1 if you want to declare interrupt-in endpoints, but don't * want to send any data over them. If this macro is defined to 1, functions * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if * you need the interrupt-in endpoints in order to comply to an interface * (e.g. HID), but never want to send any data. This option saves a couple * of bytes in flash memory and the transmit buffers in RAM. */#define USB_CFG_INTR_POLL_INTERVAL      10/* If you compile a version with endpoint 1 (interrupt-in), this is the poll * interval. The value is in milliseconds and must not be less than 10 ms for * low speed devices. */#define USB_CFG_IS_SELF_POWERED         0/* Define this to 1 if the device has its own power supply. Set it to 0 if the * device is powered from the USB bus. */#define USB_CFG_MAX_BUS_POWER           40/* Set this variable to the maximum USB bus power consumption of your device. * The value is in milliamperes. [It will be divided by two since USB * communicates power requirements in units of 2 mA.] */#define USB_CFG_IMPLEMENT_FN_WRITE      0/* Set this to 1 if you want usbFunctionWrite() to be called for control-out * transfers. Set it to 0 if you don't need it and want to save a couple of * bytes. */#define USB_CFG_IMPLEMENT_FN_READ       0/* Set this to 1 if you need to send control replies which are generated * "on the fly" when usbFunctionRead() is called. If you only want to send * data from a static buffer, set it to 0 and return the data from * usbFunctionSetup(). This saves a couple of bytes. */#define USB_CFG_IMPLEMENT_FN_WRITEOUT   0/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints. * You must implement the function usbFunctionWriteOut() which receives all * interrupt/bulk data sent to any endpoint other than 0. The endpoint number * can be found in 'usbRxToken'. */#define USB_CFG_HAVE_FLOWCONTROL        0/* Define this to 1 if you want flowcontrol over USB data. See the definition * of the macros usbDisableAllRequests() and usbEnableAllRequests() in * usbdrv.h. */#define USB_CFG_LONG_TRANSFERS          0/* Define this to 1 if you want to send/receive blocks of more than 254 bytes * in a single control-in or control-out transfer. Note that the capability * for long transfers increases the driver size. *//* #define USB_RX_USER_HOOK(data, len)     if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); *//* This macro is a hook if you want to do unconventional things. If it is * defined, it's inserted at the beginning of received message processing. * If you eat the received message and don't want default processing to * proceed, do a return after doing your things. One possible application * (besides debugging) is to flash a status LED on each packet. *//* #define USB_RESET_HOOK(resetStarts)     if(!resetStarts){hadUsbReset();} *//* This macro is a hook if you need to know when an USB RESET occurs. It has * one parameter which distinguishes between the start of RESET state and its * end. *//* #define USB_SET_ADDRESS_HOOK()              hadAddressAssigned(); *//* This macro (if defined) is executed when a USB SET_ADDRESS request was * received. */#define USB_COUNT_SOF                   0/* define this macro to 1 if you need the global variable "usbSofCount" which * counts SOF packets. This feature requires that the hardware interrupt is * connected to D- instead of D+. *//* #ifdef __ASSEMBLER__ * macro myAssemblerMacro *     in      YL, TCNT0 *     sts     timer0Snapshot, YL *     endm * #endif * #define USB_SOF_HOOK                    myAssemblerMacro * This macro (if defined) is executed in the assembler module when a * Start Of Frame condition is detected. It is recommended to define it to * the name of an assembler macro which is defined here as well so that more

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -