📄 usbd_in.c
字号:
#include "usbd.h"
#include "usb.h"
#ifdef _DEBUG
#include <stdio.h>
#endif /* _DEBUG */
#define SET_EP1_IN_PKT_READY() IN_CSR1_REG = (in_csr1 & (~ EPI_WR_BITS)\
| EPI_IN_PKT_READY )
#define SET_EP1_SEND_STALL() IN_CSR1_REG = ( in_csr1 & (~EPI_WR_BITS)\
| EPI_SEND_STALL) )
#define CLR_EP1_SENT_STALL() IN_CSR1_REG = ( in_csr1 & (~EPI_WR_BITS)\
& (~EPI_SENT_STALL) )
#define FLUSH_EP1_FIFO() IN_CSR1_REG = ( in_csr1 & (~EPI_WR_BITS)\
| EPI_FIFO_FLUSH) )
unsigned char ep1_buf[EP1_PKT_SIZE];
int transfer_index = 0;
static void
prepare_ep1_fifo(void)
{
unsigned char in_csr1;
int i;
i=0;
INDEX_REG = 1;
in_csr1 = IN_CSR1_REG;
for(i = 0; i < EP1_PKT_SIZE; i++)
{
ep1_buf[i]=(unsigned char)(transfer_index+i);
}
write_pkt_ep1(ep1_buf, EP1_PKT_SIZE);
SET_EP1_IN_PKT_READY();
delay(1);
}
void
ep1_handler(void)
{
unsigned char in_csr1;
INDEX_REG = 1;
in_csr1 = IN_CSR1_REG;
if(in_csr1 & EPI_SENT_STALL)
{
CLR_EP1_SENT_STALL();
return;
}
transfer_index++;
prepare_ep1_fifo();
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -