📄 usb.c
字号:
#include "DEC2812.h"
#include "DSP28_Device.h"
#include "DEC2812_USB.h"
#ifndef _rtc_var
#define _rtc_var
unsigned int readFlag;
unsigned int setupCnt;
unsigned int sx2Setup;
unsigned int irqValue;
unsigned short setupDat;
unsigned int setupBuff[512];
unsigned int sx2EP0Buf;
unsigned int FLAGS_READ;
unsigned int sx2EnumOK;
unsigned int sx2BusActivity;
unsigned int sx2Ready;
#endif
/*********************************************************************************************
filename: void USB_Command_Write(unsigned int Value)
*********************************************************************************************/
void USB_Command_Write(unsigned int Value)
{
*USB_Command = Value;
}
unsigned int USB_Command_Read(void)
{
unsigned int i;
i = *USB_Command;
return(i);
}
unsigned short SX2_CommandWriteByte(unsigned int Value)
{
if((*USB_StatusRead & 0x08) == 0)
{
return(FALSE);
}
USB_Command_Write(Value);
return(TRUE);
}
unsigned short SX2_Read(unsigned int addr,unsigned int *data)
{
/*READY信号准备好?*/
if((*USB_StatusRead & 0x08) == 0)
{
return(FALSE);
}
/*命令寄存器地址、读操作*/
addr = addr & 0x3f;
USB_Command_Write(0xC0 | addr);
/*判断中断响应吗?*/
readFlag = TRUE;
/*等待读标志为FALSE*/
while(readFlag);
/*READY信号准备好?*/
if((*USB_StatusRead & 0x08) == 0)
{
return(FALSE);
}
*data = USB_Command_Read();
return(TRUE);
}
unsigned short SX2_Write(unsigned int addr,unsigned int value)
{
/*READY信号准备好?*/
if((*USB_StatusRead & 0x08) == 0)
{
return(FALSE);
}
/*命令寄存器地址、读操作*/
addr = addr & 0x3f;
USB_Command_Write(0x80 | addr);
/*写DATA*/
USB_Command_Write((value>>4) & 0x0f);
USB_Command_Write(value & 0x0f);
/*READY信号准备好?*/
if((*USB_StatusRead & 0x08) == 0)
{
return(FALSE);
}
return(TRUE);
}
unsigned short Load_Descriptors(char length,char* desc)
{
unsigned char i;
if(!SX2_Write(SX2_DESC,(unsigned int)length))
{
return(FALSE);
}
SX2_CommandWriteByte((unsigned int)((length >> 12) & 0x0f));
SX2_CommandWriteByte((unsigned int)((length >> 8) & 0x0f));
SX2_CommandWriteByte((unsigned int)((length >> 4) & 0x0f));
SX2_CommandWriteByte((unsigned int)(length & 0x0f));
return(TRUE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -