usb_asm.c
来自「TI 5402程序源码」· C语言 代码 · 共 188 行
C
188 行
#include "constant.h"
#include "c5402Reg.h"
extern void c54init(void);
unsigned char usbbuf[1024],usbbufUP[1024];
unsigned int flag_usb = 0;
unsigned int usbcmd=0;
int led_timer ;
unsigned int led_map ;
unsigned int m_class ;
unsigned int end_flg ;
unsigned int run_flg ;
void userinit(void);
void Delayms(unsigned int T)
{
unsigned int j;
unsigned int n;
for(n = 0; n < T; n++)
{
for(j = 0; j < 3000; j++);
{
asm(" nop");
}
}
}
void main(void)
{
//unsigned int flag=0,j=0,i=0;
c54init();
userinit();
while(1)
{
}
}
#pragma FUNC_EXT_CALLED(ISR_usb);
interrupt void ISR_usb(void) // INT_01调用
{
unsigned int flag=0,j=0;
flag_usb = 1;
for(j=0;j<512;j++)
{
usbbuf[j] = 0; //接收缓冲区清零
}
usbcmd = USB_COMMAND &0x03; //接收命令类型
for(j=0;j<512;j++)
{
do
{
flag = USB_STATUS1;
flag = flag&0x02; //取出第2位,判断
}while(flag == 0);
usbbuf[j] = USB_DATA1;
}
//以上完成数据接收:512字节
usbbuf[0] = 25; //回发数据有效长度
if(usbcmd == 0)
{
for(j=0;j<512;j++)
{
do
{
flag = USB_STATUS3;
flag = flag&0x01; //取出第1位,判断
}while(flag == 0);
asm(" nop");
asm(" nop");
USB_DATA3= usbbuf[j];
}
}
else if(usbcmd == 1)
{
for(j=1;j<26;j++)
{
usbbuf[j]=usbbuf[j]+ 1;
}
for(j=0;j<512;j++)
{
do
{
flag = USB_STATUS3 ;
flag = flag&0x01;
}while(flag == 0);
USB_DATA3= usbbuf[j];
}
}
else if(usbcmd == 2)
{
for(j=1;j<26;j++)
{
usbbuf[j]=usbbuf[j]- 1;
}
for(j=0;j<512;j++)
{
do
{
flag = USB_STATUS3 ;
flag = flag&0x01;
asm(" nop");
asm(" nop");
}while(flag == 0);
USB_DATA3= usbbuf[j];
}
}
else if(usbcmd == 3)
{
for(j=1;j<26;j++)
{
usbbuf[j]=usbbuf[j]+ 5;
}
for(j=0;j<512;j++)
{
do
{
flag = USB_STATUS3 ;
flag = flag&0x01;
asm(" nop");
asm(" nop");
}while(flag == 0);
USB_DATA3= usbbuf[j];
}
}
flag_usb = 0;
}
#pragma FUNC_EXT_CALLED(ISR_timer0);
interrupt void ISR_timer0(void) // timer0 INT
{
led_timer ++;
if(led_timer == 0)
{
ST1 = ST1^0x2000;
led_map = led_map ^ 0x03;
LED_ADDER = led_map;
//led_timer = -3906;
led_timer = -3900;
}
}
void userinit(void)
{
led_timer = -390;
m_class = 0;
end_flg = 0;
run_flg = 0;
led_map = 1;
LED_ADDER = led_map;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?