📄 usbuser.c
字号:
/*----------------------------------------------------------------------------
* Name: USBUSER.C
* Purpose: USB Custom User Module
* 定制用户使用的USB功能模块
* Version: V1.10
*---------------------------------------------------------------------------*/
#include <LPC214X.H> /* LPC214x definitions */
#include <RTL.h>
#include "usb.h"
#include "usbcfg.h"
#include "usbhw.h"
#include "usbcore.h"
#include "usbuser.h"
#include "BlueFengUser.h"
extern U8 DataBuffer[64];
OS_TID USB_DevTask; /* USB Device Task ID */
OS_TID USB_EPTask[16]; /* USB Endpoint Task ID's */
OS_TID USB_CoreTask; /* USB Core Task ID */
/*
* USB Device Task
* Handles USB Device Events
*/
void USB_Device (void) __task {
U16 evt;
for (;;) {
os_evt_wait_or(0xFFFF, 0xFFFF); /* Wait for an Event */
evt = os_evt_get(); /* Get Event Flags */
#if USB_POWER_EVENT
if (evt & USB_EVT_POWER_ON) {
}
if (evt & USB_EVT_POWER_OFF) {
}
#endif
#if USB_RESET_EVENT
if (evt & USB_EVT_RESET) {
USB_ResetCore();
}
#endif
#if USB_WAKEUP_EVENT
if (evt & USB_EVT_WAKEUP) {
}
#endif
#if USB_SUSPEND_EVENT
if (evt & USB_EVT_SUSPEND) {
}
#endif
#if USB_RESUME_EVENT
if (evt & USB_EVT_RESUME) {
}
#endif
#if USB_SOF_EVENT
if (evt & USB_EVT_SOF) {
}
#endif
#if USB_ERROR_EVENT
if (evt & USB_EVT_ERROR) {
}
#endif
}
}
/*
* USB Endpoint 1 Task
* Handles USB Endpoint 1 Events
*/
#if (USB_EP_EVENT & (1 << 1))
void USB_EndPoint1 (void) __task {
U16 evt;
for (;;) {
os_evt_wait_or(0xFFFF, 0xFFFF); /* Wait for an Event */
evt = os_evt_get(); /* Get Event Flags */
switch (evt) {
case USB_EVT_IN:
;
break;
case USB_EVT_OUT:
USB_ReadEP(PIPE1_OUT,DataBuffer);
USB_WriteEP (PIPE1_IN, DataBuffer, 64);
break;
}
}
}
#endif
/*
* USB Endpoint 2 Task
* Handles USB Endpoint 2 Events
*/
#if (USB_EP_EVENT & (1 << 2))
void USB_EndPoint2 (void) __task {
U16 evt;
for (;;) {
os_evt_wait_or(0xFFFF, 0xFFFF); /* Wait for an Event */
evt = os_evt_get(); /* Get Event Flags */
switch (evt) {
case USB_EVT_IN:
;
break;
case USB_EVT_OUT:
USB_ReadEP(PIPE2_OUT,DataBuffer);
USB_WriteEP (PIPE2_IN, DataBuffer, 64);
break;
}
}
}
#endif
/*
* USB Endpoint 3 Task
* Handles USB Endpoint 3 Events
*/
#if (USB_EP_EVENT & (1 << 3))
void USB_EndPoint3 (void) __task {
}
#endif
/*
* USB Endpoint 4 Task
* Handles USB Endpoint 4 Events
*/
#if (USB_EP_EVENT & (1 << 4))
void USB_EndPoint4 (void) __task {
}
#endif
/*
* USB Endpoint 5 Task
* Handles USB Endpoint 5 Events
*/
#if (USB_EP_EVENT & (1 << 5))
void USB_EndPoint5 (void) __task {
}
#endif
/*
* USB Endpoint 6 Task
* Handles USB Endpoint 6 Events
*/
#if (USB_EP_EVENT & (1 << 6))
void USB_EndPoint6 (void) __task {
}
#endif
/*
* USB Endpoint 7 Task
* Handles USB Endpoint 7 Events
*/
#if (USB_EP_EVENT & (1 << 7))
void USB_EndPoint7 (void) __task {
}
#endif
/*
* USB Endpoint 8 Task
* Handles USB Endpoint 8 Events
*/
#if (USB_EP_EVENT & (1 << 8))
void USB_EndPoint8 (void) __task {
}
#endif
/*
* USB Endpoint 9 Task
* Handles USB Endpoint 9 Events
*/
#if (USB_EP_EVENT & (1 << 9))
void USB_EndPoint9 (void) __task {
}
#endif
/*
* USB Endpoint 10 Task
* Handles USB Endpoint 10 Events
*/
#if (USB_EP_EVENT & (1 << 10))
void USB_EndPoint10 (void) __task {
}
#endif
/*
* USB Endpoint 11 Task
* Handles USB Endpoint 11 Events
*/
#if (USB_EP_EVENT & (1 << 11))
void USB_EndPoint11 (void) __task {
}
#endif
/*
* USB Endpoint 12 Task
* Handles USB Endpoint 12 Events
*/
#if (USB_EP_EVENT & (1 << 12))
void USB_EndPoint12 (void) __task {
}
#endif
/*
* USB Endpoint 13 Task
* Handles USB Endpoint 13 Events
*/
#if (USB_EP_EVENT & (1 << 13))
void USB_EndPoint13 (void) __task {
}
#endif
/*
* USB Endpoint 14 Task
* Handles USB Endpoint 14 Events
*/
#if (USB_EP_EVENT & (1 << 14))
void USB_EndPoint14 (void) __task {
}
#endif
/*
* USB Endpoint 15 Task
* Handles USB Endpoint 15 Events
*/
#if (USB_EP_EVENT & (1 << 15))
void USB_EndPoint15 (void) __task {
}
#endif
/*
* USB Core Task
* Handles USB Core Events
*/
void USB_Core (void) __task {
#if (USB_CONFIGURE_EVENT || USB_INTERFACE_EVENT || USB_FEATURE_EVENT)
U16 evt;
#endif
for (;;) {
os_evt_wait_or(0xFFFF, 0xFFFF); /* Wait for an Event */
#if (USB_CONFIGURE_EVENT || USB_INTERFACE_EVENT || USB_FEATURE_EVENT)
evt = os_evt_get(); /* Get Event Flags */
#endif
#if USB_CONFIGURE_EVENT
if (evt & USB_EVT_SET_CFG) {
if (USB_Configuration) { /* Check if USB is configured */
} else {
}
}
#endif
#if USB_INTERFACE_EVENT
if (evt & USB_EVT_SET_IF) {
}
#endif
#if USB_FEATURE_EVENT
if (evt & USB_EVT_SET_FEATURE) {
}
if (evt & USB_EVT_CLR_FEATURE) {
}
#endif
}
}
/*
* USB Task Initialization
*/
void USB_TaskInit (void) {
USB_DevTask = os_tsk_create(USB_Device, 3);
#if (USB_EP_EVENT & (1 << 0))
USB_EPTask[0] = os_tsk_create(USB_EndPoint0, 2);
#endif
#if (USB_EP_EVENT & (1 << 1))
USB_EPTask[1] = os_tsk_create(USB_EndPoint1, 2);
#endif
#if (USB_EP_EVENT & (1 << 2))
USB_EPTask[2] = os_tsk_create(USB_EndPoint2, 2);
#endif
#if (USB_EP_EVENT & (1 << 3))
USB_EPTask[3] = os_tsk_create(USB_EndPoint3, 2);
#endif
#if (USB_EP_EVENT & (1 << 4))
USB_EPTask[4] = os_tsk_create(USB_EndPoint4, 2);
#endif
#if (USB_EP_EVENT & (1 << 5))
USB_EPTask[5] = os_tsk_create(USB_EndPoint5, 2);
#endif
#if (USB_EP_EVENT & (1 << 6))
USB_EPTask[6] = os_tsk_create(USB_EndPoint6, 2);
#endif
#if (USB_EP_EVENT & (1 << 7))
USB_EPTask[7] = os_tsk_create(USB_EndPoint7, 2);
#endif
#if (USB_EP_EVENT & (1 << 8))
USB_EPTask[8] = os_tsk_create(USB_EndPoint8, 2);
#endif
#if (USB_EP_EVENT & (1 << 9))
USB_EPTask[9] = os_tsk_create(USB_EndPoint9, 2);
#endif
#if (USB_EP_EVENT & (1 << 10))
USB_EPTask[10] = os_tsk_create(USB_EndPoint10, 2);
#endif
#if (USB_EP_EVENT & (1 << 11))
USB_EPTask[11] = os_tsk_create(USB_EndPoint11, 2);
#endif
#if (USB_EP_EVENT & (1 << 12))
USB_EPTask[12] = os_tsk_create(USB_EndPoint12, 2);
#endif
#if (USB_EP_EVENT & (1 << 13))
USB_EPTask[13] = os_tsk_create(USB_EndPoint13, 2);
#endif
#if (USB_EP_EVENT & (1 << 14))
USB_EPTask[14] = os_tsk_create(USB_EndPoint14, 2);
#endif
#if (USB_EP_EVENT & (1 << 15))
USB_EPTask[15] = os_tsk_create(USB_EndPoint15, 2);
#endif
USB_CoreTask = os_tsk_create(USB_Core, 2);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -