void draw_menu(void) { struct m_item* mi_child; uint8_t index_temp = 0; uint8_t i = 0; Disp_Clear(); if(menu_type) { XY_Str(2,0,(*mi_entry).text); mi_child = (*mi_entry).child; XY_Str(1,1,(*mi_child).text); mi_child = (*mi_child).next; XY_Str(8,1,(*mi_child).text); if(arrow_Pos_H == 0) XY_Char(0,1,m_arrow); else XY_Char(7,1,m_arrow); } else { Locate_xy(0,0); Disp_Str((*mi_entry).text); Locate_xy(4,0); Disp_Char('.'); Disp_Char('|'); if(arrow_Pos_V == 0) { index_temp = mi_index; Disp_Char(m_arrow); } else { index_temp = mi_index - 1; XY_Char(6,1,m_arrow); } Locate_xy(5,1); Disp_Char('|'); mi_child = (*mi_entry).child; for(i=0;i<2;i++) { while((*mi_child).index != index_temp + i) mi_child = (*mi_child).next; XY_Str(7,i,(*mi_child).text); if((*mi_child).child == 0) XY_Char(15,i,'|'); else XY_Char(15,i,'>'); } } }
/************************************************************** * 函数说明:曝光设置函数 * **************************************************************/ void SetExposure(void) { uint8 esc_flag = 0; Disp_Char(0,5,expos_mode); UserChooseR = 1; Set_Cursor(1,0); while(!esc_flag) { if(time_10ms) //10ms定时扫描键盘 { time_10ms = 0; *pRockValue=No_rock; rocker_type = Read_Rocker(pRockValue); if(rocker_type & keyPressed) { switch(*pRockValue) { case Down: UserChooseR ++; if(UserChooseR == 4) { UserChooseR = 1; } break; case Enter: TempMenu = MenuPoint; Clear_Scr(); if(MenuPoint[UserChooseR].ChildrenMenus != NULL) { MenuPoint = MenuPoint[UserChooseR].ChildrenMenus; //UserChooseR = 0; //DisplayStart = 0; } ShowMenu(); if(TempMenu[UserChooseR].Subs != NULLSubs) { (*TempMenu[UserChooseR].Subs)(); Disp_Char(0,5,expos_mode); } //Clear_Scr(); break; } Set_Cursor(UserChooseR,0); } key_value= Read_keyboard(); if(key_value != No_key) { switch(key_value) { case Esc: if(MenuPoint[UserChooseR].ParentMenus != NULL) { MenuPoint = MenuPoint[UserChooseR].ParentMenus; UserChooseR = 0; UserChooseC = 0; } esc_flag = 1; break; case OK: //Set_Mode(); switch(UserChooseR) { case 1: expos_mode = camera; break; case 2: expos_mode = sensor; break; case 3: expos_mode = fixed; break; } break; } Disp_Char(0,5,expos_mode); Set_Cursor(UserChooseR,0); } } } Clear_Scr(); ShowMenu(); }