www.pudn.com > arm_uDisk.rar > main.c


#include "mx_types.h" 
#include "System.h" 
#include  
 
#include "rtc.h" 
#include "sdi.h" 
 
#include "main.h" 
 
unsigned char MIDI_flg = 0; 
unsigned char *MIDIaddress; 
unsigned long file_length=0; 
 
u_8 testtest = 0; 
 
u_8 USBD_flg=0;//0:8051 usb device; 1:U-disk 
 
void Main(void) 
{ 
	RTC_Time rTime; 
	u_8 Tmp = 0xfb; 
 
	System_initial(); 
 
	Uart_Printf("	Key1: Test_SDI\n"); 
	Uart_Printf("	Key2: Change to U-Disk device\n"); 
	Uart_Printf("	Key9: Change to 8051 USB device\n"); 
	while(1) 
	{ 
		while(MIDI_flg==0) 
		{ 
			System_Waiting(); 
			Delay(500); 
		} 
		if(MIDI_flg == 1) 
		{ 
			Test_SDI(); 
			MIDI_flg = 0; 
		} 
		else if(MIDI_flg == 2) 
		{ 
			Test_Init(); 
			Uart_Printf("\nfor usb mass storage\n"); 
			USBD_flg = 1; 
			UsbdMain(); 
			Uart_Printf("Please push the usb reset key...\n"); 
			MIDI_flg = 0; 
		} 
		else if(MIDI_flg == 9) 
		{ 
			Uart_Printf("\nfor 8051 test board\n"); 
			USBD_flg = 0; 
			UsbdMain(); 
			Uart_Printf("Please push the usb reset key...\n"); 
			MIDI_flg = 0; 
		} 
	} 
} 
 
void __irq Isr_Eint2(void) 
{ 
	ClearPending(BIT_EINT2);//Clear INT2 flag.   
	 
} 
 
void __irq Isr_Eint8_23(void) //EINT8_23 
{ 
    
	switch(rEINTPEND) 
       { 
        case 0x000100://key1 
		Delay(3000); 
		MIDI_flg = 1; 
		rEINTPEND=(1<<8); 
		break; 
		 
        case 0x000800://key2 
		Delay(3000); 
		MIDI_flg = 2; 
       	rEINTPEND=(1<<11); 
        break; 
		 
        case 0x080000://key9 
		Delay(3000); 
		MIDI_flg = 9; 
		rEINTPEND=(1<<19); 
		break; 
	 
	 case 0x002000: 
 		Delay(300); 
 
      		rEINTPEND=(1<<13); 
		break; 
 
        case 0x004000: 
        	Delay(300); 
 
		rEINTPEND=(1<<14); 
       	break; 
 
	case 0x008000: 
		Delay(3000); 
 
		rEINTPEND=(1<<15); 
        	break; 
 
	case 0x010000: 
		Delay(3000); 
 
		rEINTPEND=(1<<16); 
        	break; 
 
	case 0x020000: 
		Delay(3000); 
 
		rEINTPEND=(1<<17); 
        	break; 
	case 0x040000: 
		Delay(3000); 
 
		rEINTPEND=(1<<18); 
        	break; 
        default: 
 
		rEINTPEND = 0xFFFFF0; //Clear External Interrupt Pending Register . 
            	break; 
				 
        } 
	ClearPending(BIT_EINT8_23); 
}