📄 function.c
字号:
#pragma NOIV
#include "testheader.h"
#include "testregs.h"
#include "testdly.h"
extern BOOL GotSUD;
extern BOOL Sleep;
extern BOOL Rwuen;
extern BOOL Selfpwr;
volatile BOOL wait_reg_return;
BYTE Configuration;
BYTE AlternateSetting;
#define VR_NAKALL_ON 0xD0
#define VR_NAKALL_OFF 0xD1
sbit PA0 = 0x80;
sbit PA1 = 0x81;
int i;
TD_Init() // 初始化异步数据传输,端口的配置要与端口描述符相一致
{
REVCTL = 0x03; // 必须设置 REVCTL1=1 当端点从手动模式切换到自动模式USB核不会自动装载端点
SYNCDELAY; // REVCTL0=1 CPU可以放弃、提交、编辑输入输出数据包
SYNCDELAY;
SYNCDELAY;
EP0BCH = 0;
PORTACFG=0x40; // 设置PA.7 为 slcs;
SYNCDELAY;
FIFOPINPOLAR = 0x00; //设 PKTEND SLOE SLRD SLWR EF FF 低电平有效
SYNCDELAY;
CPUCS = ((CPUCS & ~bmCLKSPD) | bmCLKSPD1) ; // CPUCLK=48MKHZ
SYNCDELAY;
OEA =0x03;
SYNCDELAY;
EP2CFG = 0xA2; // EP2: 输出端点 512字节每个数据包 2级缓冲
SYNCDELAY;
EP4CFG = 0xA0; // EP4: 输出端点 512字节每个数据包 2级缓冲
SYNCDELAY;
EP6CFG = 0xEA; // EP6: 输入端点 1024字节每级缓冲 2级缓冲
SYNCDELAY;
EP8CFG = 0x00;
SYNCDELAY;
FIFORESET = 0x80; // 复位 FIFO
SYNCDELAY;
FIFORESET = 0x02;
SYNCDELAY;
FIFORESET = 0x04;
SYNCDELAY;
FIFORESET = 0x06;
SYNCDELAY;
FIFORESET = 0x00;
SYNCDELAY;
IFCONFIG = 0xcb; // 设置接口为异步
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -