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

📄 fw.c

📁 SL811H的驱动
💻 C
字号:
#include "host_811.H"

extern Control  USB_Control;
extern UINT8 UsbEvent;



extern void DelayMs(UINT8 nFactor);
UINT8 SL811Read(UINT8  a);
void SL811Write(UINT8  a, UINT8  d);
void SL811BufRead(UINT8 addr, UINT8 *s, UINT8 c);
void SL811BufWrite(UINT8 addr, UINT8 *s, UINT8 c);





UINT8 Demo(void)
{
	if(!CreateFile("demo.txt",0x20))
		return 0;
	return 1;

}
main_USB()
{
	UINT8 i;
	
	DDRD |= (BIT5);
	PORTD &= (~BIT5);
	DelayMs(20);
	PORTD |= (BIT5);
	ENABLE_INTERRUPTS;
	sl811h_init();
	UsbEvent=TRUE;	
	while(TRUE)
	{
		if(UsbEvent)
		{
			UsbEvent=FALSE;
			SL811Write(IntStatus,0XFF);
			i=SL811Read(IntStatus);    
			if((USB_RESET&i))
			{	
				if(USB_Control.SLAVE_ONLINE ==TRUE)
				{
					USB_Control.SLAVE_REMOVED=TRUE;
					USB_Control.SLAVE_ONLINE =FALSE;
				}
			}
			else	
			{  
				if(USB_Control.SLAVE_ONLINE == FALSE&&(i|0x7F))
				{	 
					USB_Control.SLAVE_FOUND=TRUE;
	   				USB_Control.SLAVE_ONLINE =TRUE;
				}
			}
			if(USB_Control.SLAVE_FOUND)
			{	
				DISABLE_INTERRUPTS;
				USB_Control.SLAVE_FOUND=FALSE;
				if(EnumUsbDev(1))							// enumerate USB device, assign USB address = #1
					{
						USB_Control.SLAVE_ENUMERATED = TRUE;	// Set slave USB device enumerated flag		
						PrintStr("Aha, found a USB device");
					}
				ENABLE_INTERRUPTS;
			}		
			if(USB_Control.SLAVE_REMOVED)

			{
				DISABLE_INTERRUPTS;
				USB_Control.SLAVE_REMOVED=FALSE;
				USB_Control.SLAVE_ENUMERATED = FALSE;
				ENABLE_INTERRUPTS;
			}
			if(USB_Control.bMassDevice)
			{
				DISABLE_INTERRUPTS;
				USB_Control.bMassDevice=FALSE;
				ApiDemo();
				return;
				ENABLE_INTERRUPTS;
			}
		}//end if 

	}//end for while	

}//end main

⌨️ 快捷键说明

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