⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 基于Embest开发环境
💻 C
字号:
//#include "host_811.h"
#include "SL811.h"
#include "44blib.h"
#include "44b.h"
#include "stdio.h"

XXGFLAGS bXXGFlags;
extern BYTE DBUF[BUFFER_LENGTH];

int Main()                
{                     
    BYTE i,j,version,temp;
    WORD temp12;
     
    sys_init();   

    Uart_Printf("USB Disk Code For ARM \n");
    RESET(0);//sl811 reset
    DelayMs(5);
    RESET(1);
    DelayMs(5);
     
    SL811_Init();
    DelayMs(10);
    
    version	= SL811_GetRev();
    Uart_Printf("SL811 version is %x!\n",version);
    
    Uart_Printf("SL811 RAM TEST...");
    
    for(i = 0x10; i < 0x20; i++)
    {
    SL811Write(i,i);
	version = SL811Read(i);		
	
//    Uart_Printf("version is %x!\n",version);
    
    if(version != i)
    	{
		Uart_Printf("  Error!\n");	
		while(1);
		}
		
    }
    
    Uart_Printf("  SUCCESSFULLY!\n");
 
	for(temp=0;temp<64;temp++)
		DBUF[temp]=0; 
		
	while(1)
	{
		check_usb_device();
		DelayMs(50);
		
		if(bXXGFlags.bits.SLAVE_FOUND){
			
			Uart_Printf("Found USB SLAVE\n");
			bXXGFlags.bits.SLAVE_FOUND=FALSE;
		
				DelayMs(100);
				speed_detect();
				DelayMs(100);
			//DelayMs(50);
			if(EnumUsbDev(1))				// enumerate USB device, assign USB address = #1
			{
			   	bXXGFlags.bits.SLAVE_ENUMERATED = TRUE;	// Set slave USB device enumerated flag
			   	Uart_Printf("    Successfully!\n");
			   	Uart_SendByte('\n');
			}	
		
		}
		else
			Uart_Printf("Found NO USB\n");
			
			
		if(bXXGFlags.bits.SLAVE_REMOVED){
			Uart_Printf("USB SLAVE REMOVED\n");
			bXXGFlags.bits.SLAVE_REMOVED=FALSE;
		//	MCU_LED0=1;
		//	MCU_LED1=1;
			bXXGFlags.bits.SLAVE_ENUMERATED = FALSE;
			bXXGFlags.bits.SLAVE_IS_ATTACHED = FALSE;
			//bXXGFlags.bits.bMassDevice=TRUE;
			//ENABLE_INTERRUPTS;
			}
			
			
		if(bXXGFlags.bits.bMassDevice){
		//	DISABLE_INTERRUPTS;
			bXXGFlags.bits.bMassDevice=FALSE;
			if(EnumMassDev())
				{
				bXXGFlags.bits.SLAVE_IS_ATTACHED = TRUE;
				Uart_Printf("Enumerate MASS Device Successfully!\n");
				Uart_SendByte('\n');
				bXXGFlags.bits.bUartInDone = TRUE;
				}
			else
				{
				Uart_Printf("Enumerate MASS Device Unsuccessfully!\n");
				Uart_SendByte('\n');
				bXXGFlags.bits.SLAVE_IS_ATTACHED = FALSE;
				}		
		//	ENABLE_INTERRUPTS;
			}
			
		if(bXXGFlags.bits.bUartInDone){
	//		DISABLE_INTERRUPTS;
			bXXGFlags.bits.bUartInDone=0;	
			UartHandler();
	//		ENABLE_INTERRUPTS;	
			}
	}

//    version=SL811Read(0x0e);
//    Uart_Printf("version is %x!\n",version);
				
	
	

//    U_Disk_Test();
    return 1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -