?? main.c
字號(hào):
#include "common.H"
#include "SL811.H"
#include "TPBULK.H"
#include "HAL.H"
#include "HPI.H"
#include "FAT.H"
#include "FAT32.H"
#include "HPI32.H"
FLAGS bdata bFlags;
extern unsigned char xdata DBUF[BUFFER_LENGTH];
/////////////////////////////////////////////////
extern unsigned long xdata DirStartCluster,DirStartCluster32;
extern unsigned char xdata UARTBUF[UARTBUF_LENGTH];
extern Command_Def xdata Command;
extern SYS_INFO_BLOCK xdata DeviceInfo;
//////////////////////////////////////////
void Init_SpecialInterrupts(void)
{
IT0 = 0;
EX0 = 1;
}
void Init_Port()
{
P0 = 0xFF;
P1 = 0xFF;
P2 = 0xFF;
P3 = 0xFF;
SL811_CS=0;
}
/*Serial Port */
/*Mode = 1 /8-bit UART
Serial Port Interrupt = Disabled */
/*Receive = Enabled */
/*Auto Addressing = Disabled */
void Init_COMM(void)
{
SCON = 0x53;
PCON = 0x80 | PCON;
T2CON=0x30;
RCAP2H=0xFF; // 57600 @ 24MHz: 24000000/(32*(65536-(RCAP2H,RCAP2L)))
RCAP2L=0xF3;
TI=0;
RI=0;
TR2=1;
ES = 1;
}
void main(void)
{
unsigned char temp;
unsigned long xdata time_count;
SL811_RST=0;
DelayMs(250);
SL811_RST=1;
Init_SpecialInterrupts();
Init_Port();
Init_COMM();
SL811_Init();
bFlags.bits.bUartInDone=0;
DirStartCluster=0;
DirStartCluster32=0;
for(temp=0;temp<64;temp++)
DBUF[temp]=0;
ENABLE_INTERRUPTS;
while(TRUE)
{
time_count++;
if (time_count>1000)
{
DISABLE_INTERRUPTS;
time_count = 0;
ENABLE_INTERRUPTS;
check_key_LED();
}
if(bFlags.bits.SLAVE_FOUND){
DISABLE_INTERRUPTS;
bFlags.bits.SLAVE_FOUND=FALSE;
DelayMs(250);
if(EnumUsbDev(1)) // enumerate USB device, assign USB address = #1
{
bFlags.bits.SLAVE_ENUMERATED = TRUE; // Set slave USB device enumerated flag
DirStartCluster=0;
DirStartCluster32=0;
MCU_LED1=0;
}
ENABLE_INTERRUPTS;
}
if(bFlags.bits.SLAVE_REMOVED){
DISABLE_INTERRUPTS;
bFlags.bits.SLAVE_REMOVED=FALSE;
bFlags.bits.SLAVE_ENUMERATED = FALSE;
bFlags.bits.SLAVE_IS_ATTACHED = FALSE;
MCU_LED1=1;MCU_LED2=1;
ENABLE_INTERRUPTS;
}
if(bFlags.bits.bUartInDone){
DISABLE_INTERRUPTS;
bFlags.bits.bUartInDone=0;
if(DeviceInfo.FAT) //FAT32
UartHandler32();
else
UartHandler(); //FAT16
ENABLE_INTERRUPTS;
}
if(bFlags.bits.bMassDevice){
DISABLE_INTERRUPTS;
bFlags.bits.bMassDevice=FALSE;
if(EnumMassDev())
{
bFlags.bits.SLAVE_IS_ATTACHED = TRUE;
MCU_LED2=0;
}
else
{
bFlags.bits.SLAVE_IS_ATTACHED = FALSE;
temp=SL811Read(IntStatus);
if(!(temp & 0x40)) bFlags.bits.SLAVE_FOUND=TRUE;
}
ENABLE_INTERRUPTS;
}
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -