[AT90USB1287-EX] USB Host 테스트 - 메모리 스틱의 이미지 파일 TFT LCD에 출력하기
AT90USB1287은 USB 호스트 기능이 있어 USB 메모리 스틱의 파일을 읽거나 쓸수 있다.
USB 메모리 스틱의 파일 리스트를 읽어 LCD에 출력하고 bmp파일을 차례로 TFT LCD에 출력하는 예제를 작성해 보았다.
AT90USB1287 USB Host 테스트 동영상
USB메모리 스틱이 인식되면 BMP파일을 찾아서 순서대로 출력하는 예제를 작성해 보았다.
AT90USB1287 USB 메모리스틱 테스트 예제 소스코드
AT90USB1287 USB 메모리스틱 호스트 처리 함수
AT90USB1287은 USB 호스트 기능이 있어 USB 메모리 스틱의 파일을 읽거나 쓸수 있다.
USB 메모리 스틱의 파일 리스트를 읽어 LCD에 출력하고 bmp파일을 차례로 TFT LCD에 출력하는 예제를 작성해 보았다.
AT90USB1287 USB Host 테스트 동영상
USB메모리 스틱이 인식되면 BMP파일을 찾아서 순서대로 출력하는 예제를 작성해 보았다.
AT90USB1287 USB 메모리스틱 테스트 예제 소스코드
int main(void)
{
//시스템 초기화
SystemInit();
//LED포트 초기화
Led1Init();
Led1On();
Led2Init();
Led2On();
//UART Init
DebugInit(BAUD_57600);
DebugPrint("[AT90USB1287-EX] Test Program - USB Host MS\r\n");
//TFT LCD 초기화
TftLcd_Init();
Disp_Full_Color(White);
Delay(500);
PutString("[AT90USB1287] Host MS Test",1,0,Red,0);
//USB Host초기화
usb_task_init();
host_ms_task_init();
nav_reset();
while(1)
{
usb_task();
host_ms_task();
//메모리스틱 파일 처리
ProcessMSTest();
}
}
{
//시스템 초기화
SystemInit();
//LED포트 초기화
Led1Init();
Led1On();
Led2Init();
Led2On();
//UART Init
DebugInit(BAUD_57600);
DebugPrint("[AT90USB1287-EX] Test Program - USB Host MS\r\n");
//TFT LCD 초기화
TftLcd_Init();
Disp_Full_Color(White);
Delay(500);
PutString("[AT90USB1287] Host MS Test",1,0,Red,0);
//USB Host초기화
usb_task_init();
host_ms_task_init();
nav_reset();
while(1)
{
usb_task();
host_ms_task();
//메모리스틱 파일 처리
ProcessMSTest();
}
}
AT90USB1287 USB 메모리스틱 호스트 처리 함수
void ProcessMSTest(void)
{
char name[10] = "a_1.bmp";
unsigned char cnt = 0;
unsigned char i;
// USB인식되면
if( !Is_device_disconnection() )
{
if(ms_connected == 1)
{
if(mounted == FALSE)
{
if(nav_drive_set(host_selected_lun) == FALSE)
{
mounted = FALSE;
return;
}
//FAT 초기화
if(nav_partition_mount()==FALSE)
{
mounted = FALSE;
return;
}
else
{
mounted = TRUE;
//파일 리스트 출력
USB_FileNameRead();
Delay(100);
//MS에서 파일 읽어와 TFT에 출력
while( 1)
{
if(cnt>gMaxFileCnt)cnt=0;
sprintf(name, "a_%d.bmp", cnt);
Draw_BitMap(name);
cnt++;
}
return;
}
}
}
else mounted = FALSE;
}
else mounted = FALSE;
}
{
char name[10] = "a_1.bmp";
unsigned char cnt = 0;
unsigned char i;
// USB인식되면
if( !Is_device_disconnection() )
{
if(ms_connected == 1)
{
if(mounted == FALSE)
{
if(nav_drive_set(host_selected_lun) == FALSE)
{
mounted = FALSE;
return;
}
//FAT 초기화
if(nav_partition_mount()==FALSE)
{
mounted = FALSE;
return;
}
else
{
mounted = TRUE;
//파일 리스트 출력
USB_FileNameRead();
Delay(100);
//MS에서 파일 읽어와 TFT에 출력
while( 1)
{
if(cnt>gMaxFileCnt)cnt=0;
sprintf(name, "a_%d.bmp", cnt);
Draw_BitMap(name);
cnt++;
}
return;
}
}
}
else mounted = FALSE;
}
else mounted = FALSE;
}
반응형