我刚把触摸屏实验程序移植到了读u盘显示图片的程序上面,但是读u盘的时间比较长,影响触摸屏扫描。我吧读u盘显示图片的函数移到大循环外后图片就显示不了。能不能有什么办法让图片显示完后就不再读u盘,直接执行触摸屏的扫描?
下面是主函数
int main(void)
{
u8 t;u16 i;
u16 lastpos[5][2];
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//éèÖÃÏμí3ÖD¶ÏóÅÏ輶·Ö×é2
delay_init(168); //3õê¼»ˉÑóê±oˉêy
uart_init(115200); //3õê¼»ˉ′®¿ú2¨ìØÂêÎa115200
LED_Init(); //3õê¼»ˉóëLEDᬽóμÄó2¼t½ó¿ú
KEY_Init(); //°′¼ü
LCD_Init(); //3õê¼»ˉLCD
tp_dev.init(); //′¥ÃtÆá3õê¼»ˉ
W25QXX_Init(); //SPI FLASH3õê¼»ˉ
usmart_dev.init(84); //3õê¼»ˉUSMART
my_mem_init(SRAMIN); //3õê¼»ˉÄú2¿Äú′æ3Ø
exfuns_init(); //ÎafatfsÏà1رäá¿éêÇëÄú′æ
piclib_init(); //3õê¼»ˉ»-í¼
f_mount(fs[0],"0:",1); //1òÔØSD¿¨
f_mount(fs[1],"1:",1); //1òÔØSD¿¨
f_mount(fs[2],"2:",1); //1òÔØUÅì
POINT_COLOR=RED;
while(font_init()) //¼ì2é×Ö¿a
{
LCD_ShowString(60,50,200,16,16,"Font Error!");
delay_ms(200);
LCD_Fill(60,50,240,66,WHITE);//Çå3yÏÔê¾
delay_ms(200);
}
Show_Str(30,50,200,16,"ì½Ë÷ÕßSTM32F407¿a·¢°å",16,0);
Show_Str(30,70,200,16,"USB UÅìêμÑé",16,0);
Show_Str(30,90,200,16,"2014Äê7ÔÂ22èÕ",16,0);
Show_Str(30,110,200,16,"ÕyμãÔ-×ó@ALIENTEK",16,0);
Show_Str(30,140,200,16,"é豸ᬽóÖD...",16,0);
//3õê¼»ˉUSBÖ÷»ú
USBH_Init(&USB_OTG_Core,USB_OTG_FS_CORE_ID,&USB_Host,&USBH_MSC_cb,&USR_Callbacks);
while(1)
{
USBH_Process(&USB_OTG_Core, &USB_Host);
ai_load_picfile("2:/aq.jpg",0,0,200,300,1);
ai_load_picfile("2:/b.jpg",301,0,159,150,1);
ai_load_picfile("2:/c.jpg",301+160,0,300,300,1);
tp_dev.scan(0);
for(t=0;t<OTT_MAX_TOUCH;t++)
{
if((tp_dev.sta)&(1<<t))
{
if(tp_dev.x[t]<lcddev.width&&tp_dev.y[t]<lcddev.height)
{
if(lastpos[t][0]==0XFFFF)
{
lastpos[t][0] = tp_dev.x[t];
lastpos[t][1] = tp_dev.y[t];
}
lcd_draw_bline(lastpos[t][0],lastpos[t][1],tp_dev.x[t],tp_dev.y[t],2,POINT_COLOR_TBL[t]);//??
lastpos[t][0]=tp_dev.x[t];
lastpos[t][1]=tp_dev.y[t];
if(tp_dev.x[t]>(lcddev.width-24)&&tp_dev.y[t]<20)
{
Load_Drow_Dialog();//??
}
}
}else lastpos[t][0]=0XFFFF;
}
delay_ms(1);
t++;
if(t==200)
{
LED0=!LED0;
t=0;
}
}
}
|