50 likes | 211 Views
第三周学习报告. 第三周学习报告. —— 叶睿. --- 叶睿. 流程图. 流程图. 本周主要看了各个功能函数的具体结构,主体函数有 if-else , while, 以及 switch-case. 下面以图片浏览功能函数为例说明 , 函数分为图片浏览模式 void PIC_Mode_Control() 和图片浏览器 void Pic_Viewer(void).
E N D
第三周学习报告 第三周学习报告 ——叶睿 ---叶睿
流程图 流程图
本周主要看了各个功能函数的具体结构,主体函数有if-else , while,以及switch-case. 下面以图片浏览功能函数为例说明,函数分为图片浏览模式void PIC_Mode_Control() 和图片浏览器 void Pic_Viewer(void). 一.图片浏览模式void PIC_Mode_Control()定义了两个变量temp和nextindex, 通过temp的值来得到播放模式。其中nextindex是用来控制范围及浏览下一张或上一张图片的计数器 void PIC_Mode_Control(u16 *index,u16 total) { u8 temp; u16 nextindex; nextindex=*index; temp=PIC_View_Status>>6;//得到模式 if(temp==1)//顺序播放 { nextindex++; if(nextindex>total)nextindex=1;//范围控制 }else //随机播放 { srand(RTC->CNTL);//得到种子 while(1) { nextindex=rand();//得到下一个值 if(nextindex>0&&nextindex<=total)break;//得到了可用的随机数 } } *index=nextindex;
二.图片浏览器void Pic_Viewer(void)定义了如下变量: 当前目录下图片文件的个数pic_cnt,当前选择的文件编号index,使能退出enout,延迟时间dtime和tcnt。 首先得到浏览的目录,即从哪里开始浏览 if(FAT32_Enable)Cur_Dir_Cluster=FirstDirClust;//根目录簇号 else Cur_Dir_Cluster=0; Fat_Dir_Cluster=Cur_Dir_Cluster;//父目录就是当前目录 然后在所选文件夹下浏览图片 TFT_CLEAR(WHITE);//清屏,加载下一幅图片的时候,一定清屏 AI_LoadPicFile(FileInfo,0,0,240,320);//显示图片 while(1) { if(Pen_Point.Key_Sta==Key_Down||NPEN)key=Touch_Key_Pro(2);//得到了按键值 if(key) { if(enout&&key==CLICK_POINT&&Is_In_Area(200,300,239,319))goto BROS;//退出此张图片 enout=0; if(key==MOVE_UP||key==MOVE_LEFT)//显示前一副图片 { if(index>1)index--; else index=pic_cnt;//到最后一副(循环) break; }else if(key==MOVE_DOWN||key==MOVE_RIGHT) { index++; if(index>pic_cnt)index=1;//显示第一副,循环 break; }else if(key==CLICK_POINT) //单次按下,弹出退出选择项 { enout=1;//使能退出 POINT_COLOR=RED; Show_Str(203,300,"返回",0x01); //叠加模式,非自动换行 POINT_COLOR=BLUE; } key=0;//清除键值 Pen_Point.Key_Sta=Key_Up;//释放显示期间的触发 }