亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? menu.c.bak

?? 智能充電參考程序 可以控制整個(gè)充電過程希望對大家有幫助
?? BAK
字號:
/****************************************Copyright (c)**************************************************
**                              智 能 充 電 器 開 發(fā) 小 組
**                                     OurAVR 論壇
**                                   QQ 群: 26052247 
**
**                               http://www.ouravr.com/bbs
**
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名: SIO.c
**創(chuàng)   建   人: Trinove
**最后修改日期: 2008年01月13日
**描        述: 菜單的底層函數(shù)  FOR AVR MCU / Mega16
**              
**--------------歷史版本信息----------------------------------------------------------------------------
** 創(chuàng)建人: aleyn.wu
** 版  本: V1.0
** 日 期: 2008年01月13日
** 描 述: 原始版本
**
**--------------當(dāng)前版本修訂------------------------------------------------------------------------------
** 修改人: 呂海安
** 日 期: 2008年03月09日
** 描 述: For 智能充電器
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#include "Config.h"
#include "Menu.h"


#define MENU_LINE 2



/*******************************************************************************************************
** 函數(shù)名稱: MenuNo
** 功能描述: 菜單序號
** 輸入?yún)?shù): INT8U No:
** 輸出參數(shù): 
********************************************************************************************************/
INT8U MenuNo(INT8U No)
{
    if ((No >= 0) && (No <= 9))
    {
        return No + '0';
    }
    else if ((No >= 10) && (No <= 36))
    {
        return No - 10 + 'A';
    }
    else
    {
        return '?';
    }
}


/*******************************************************************************************************
** 函數(shù)名稱: ChooseRadioMenu
** 功能描述: 選擇單選菜單
** 輸入?yún)?shù): INT8U ParamCaptionID:
**           INT8U MenuDefineID:
**           INT8U *Value
** 輸出參數(shù): 無
********************************************************************************************************/
/*
void ChooseRadioMenu(INT8U ParamCaptionID, INT8U MenuDefineID, INT8U *Value)
{
    flash INT8U *Caption;
    flash INT8U *pDefine;
    INT8U Key;
    INT8U Pos;
    INT16U TopMenuItem;
    INT16U CurrentMenuItem;
    //INT8U i;
    INT8U MenuCount;

    delay_ms(10);
    
    LCD_WriteCaption(ParamCaptionID, 0);
    Pos = LCD_Position() - 1;
    
    //WriteCGRAM(0x82,1,0);
    //WriteCGRAM(0x83,2,0);
    //WriteCGRAM(0x84,3,0);
    
    pDefine = SubMenuDefine + (INT16U)2 * (INT16U)MenuDefineID;
    MenuCount = pDefine[1];
    TopMenuItem = pDefine[0];
    CurrentMenuItem = *Value;
    if (CurrentMenuItem > MenuCount - 1)
    {
        CurrentMenuItem=MenuCount - 1;
    }
    

    Key = 1;
    while (Key != BT_APPLY)
    {
        if (Key != 0)
        {
            LCD_Ctrl(LCD_SET_DDRAM | Pos);
            
            Caption = Menu + (CAPTION_LENGTH + 2) * (TopMenuItem + CurrentMenuItem - 1);
            
            if (CurrentMenuItem == 0)
            {
                LCD_Write(3);
            }
            else if (CurrentMenuItem == MenuCount - 1)
            {
                LCD_Write(1);
            }
            else
            {
                LCD_Write(2);
            }
            
            //LCD_Write(MenuNo(CurrentMenuItem));
            LCD_Write(' ');
            LCD_Write('=');
            LCD_PutStrF(Caption);
        }
        
        Key = GetKey();
        
        if (Key != 0)
        {
            if (Key == BT_UP)
            {
                if (CurrentMenuItem > 0)
                {
                    CurrentMenuItem --;
                } 
            }
            else if (Key == BT_DOWN)
            {   
                if (CurrentMenuItem < MenuCount - 1)
                {
                    CurrentMenuItem ++;
                }
            }
            else if (Key == BT_APPLY)
            {
                *Value = CurrentMenuItem;
            }
            else if (Key == BT_LEFT)
            {
                Key = BT_APPLY;
            }
            
            delay_ms(10)
        }
        
    }
} 
*/

/*******************************************************************************************************
** 函數(shù)名稱: ShowMenu
** 功能描述: 菜單顯示程序,每 100 mS 調(diào)用一次即可
** 輸入?yún)?shù): 無
** 輸出參數(shù): 無
********************************************************************************************************/
void ShowMenu(void)
{
    static flash INT8U *pMenu;
    static flash INT8U *pDefine;
    static flash INT8U *Caption;  
    static INT16U TopMenuItem = 0;
    static INT16U CurrentMenuItem = 0;
    static INT8U Stack[3][5] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; 
    static INT8U StackIndex = 0;
    static INT8U DrawMenuItem[6]={0x80,0xC0,1,0,0,1};
    static INT8U MenuCount;
    static INT8U FlagMenuInit = 1;   // 顯示菜單框架
    static INT8U Key = INIT_KEY;     // 第一次顯示菜單
    INT8U i = 0;
    INT8U j = 0; 

    if(FlagMenuInit)
    {
        FlagMenuInit = 0;  // 清第一次標(biāo)志 
 
        lcd_cls();  //清屏    
        pMenu = Menu;  
        pDefine = SubMenuDefine;
        MenuCount = SubMenuDefine[1]; 
        
        //WriteCGRAM(0x80,0,0);     // 寫入特殊字符 
        //WriteCGRAM(0x81,1,0);     // 寫入特殊字符  
    }  
    
    if (Key != NO_KEY)
    {        
        for (j=0; j<2; j++)
        {
            lcd_write_byte(DrawMenuItem[0 + j], CMD);
            
            if (DrawMenuItem[(INT8U)(j + 4)] < MenuCount)
            {
                Caption = Menu + (CAPTION_LENGTH + 2) * (TopMenuItem + DrawMenuItem[(INT8U)(j + 4)]);
                
                if (DrawMenuItem[(INT8U)(j + 2)])
                {                
                    lcd_write_byte(0, DATA);
                    lcd_write_byte(MenuNo(DrawMenuItem[(INT8U)(j + 4)] + 1), DATA);
                    lcd_write_byte('.', DATA);
                    lcd_print_stringF(Caption);
                }
                else
                {   
                    lcd_print_stringF(" ");
                    lcd_write_byte(MenuNo(DrawMenuItem[(INT8U)(j + 4)] + 1), DATA);
                    lcd_write_byte('.', DATA);
                    lcd_print_stringF(Caption);
                }
            }
            else
            {
                for (i=0; i<16; i++) 
                {
                    lcd_write_byte(' ', DATA);
                }
            }       
        }
    }
    
    Key = read_keycode(); 
    
    if (Key != NO_KEY)
    {
        if (Key == BT_UP)
        {
            if (DrawMenuItem[3])
            {
                DrawMenuItem[2]=1;
                DrawMenuItem[3]=0;
            } 
            else if (DrawMenuItem[4]>0)
            {
                DrawMenuItem[4]--;
                DrawMenuItem[5]--;
            }
        }
        else if (Key == BT_DOWN)
        {   
            if (DrawMenuItem[2])
            {
                DrawMenuItem[2]=0;
                DrawMenuItem[3]=1;
            }
            else if (DrawMenuItem[5]<MenuCount-1)
            {
                DrawMenuItem[4]++;
                DrawMenuItem[5]++;
            }
        }
        else if ((Key == BT_APPLY) || (Key == BT_RIGHT))
        {
            
            if (DrawMenuItem[2])
            {
                CurrentMenuItem = TopMenuItem + DrawMenuItem[4];
            }
            else
            {
                CurrentMenuItem = TopMenuItem + DrawMenuItem[5];
            }
            
            if (CurrentMenuItem < MENU_COUNT)
            {
                pMenu = Menu + ((CAPTION_LENGTH + 2) * CurrentMenuItem) + CAPTION_LENGTH + 1;
                if (*pMenu > MENU_SUBITEM)
                {
                    Stack[0][StackIndex] = pDefine-SubMenuDefine;
                    Stack[1][StackIndex] = DrawMenuItem[2];
                    Stack[2][StackIndex] = DrawMenuItem[4];
                    StackIndex ++;
                    
                    pDefine = SubMenuDefine + ((INT16U)(*pMenu - MENU_SUBITEM) * 2);
                    TopMenuItem =* pDefine - 1;
                    MenuCount = pDefine[1];
                    DrawMenuItem[2] = 1;
                    DrawMenuItem[3] = 0;
                    DrawMenuItem[4] = 0;
                    DrawMenuItem[5] = 1;
                }
                else if (*pMenu <= MENU_SUBITEM)
                {
                    ExecuteMenu(CurrentMenuItem + 1);
                }
                
            }
        }
        else if ((Key == BT_CANCEL) || (Key == BT_LEFT))
        {
            if (StackIndex > 0)
            {
                StackIndex --;
                pDefine=SubMenuDefine + (INT16U)(Stack[0][StackIndex]);
                TopMenuItem=*pDefine - 1;
                MenuCount=pDefine[1];
                DrawMenuItem[2] = Stack[1][StackIndex];
                DrawMenuItem[3] = 1 - Stack[1][StackIndex];
                DrawMenuItem[4] = Stack[2][StackIndex];
                DrawMenuItem[5] = Stack[2][StackIndex] + 1;
            }
        }
    
    }              
    
}


/*******************************************************************************************************
** 函數(shù)名稱: ExecuteMenu
** 功能描述: 菜單顯示程序,每 100 mS 調(diào)用一次即可
** 輸入?yún)?shù): 無
** 輸出參數(shù): 無
********************************************************************************************************/
void ExecuteMenu(INT8U MenuID)
{
	
	if (MenuID == MN_STAT_BATTERY0)
	{
		ReadBatterySTAT(BATTERY0);
	}
	else if (MenuID == MN_STAT_BATTERY1)
	{
		ReadBatterySTAT(BATTERY1);
	}
	
	else if (MenuID == MN_STAT_BATTERY_BOTH)
	{
		ReadBatterySTAT(BATTERY_BOTH);		
	}
	
}

/********************************************************************************************************
**                                 END OF FILE
********************************************************************************************************/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
伦理电影国产精品| 91在线精品秘密一区二区| 国产日韩欧美综合一区| 欧美性大战久久久久久久| 久草热8精品视频在线观看| 亚洲手机成人高清视频| 26uuu亚洲综合色| 欧美日韩一区二区不卡| 成人aaaa免费全部观看| 久久不见久久见中文字幕免费| 18成人在线观看| 欧美va亚洲va国产综合| 91官网在线免费观看| 大桥未久av一区二区三区中文| 蜜臀av一区二区在线观看| 亚洲精品乱码久久久久久| 国产欧美精品国产国产专区| 日韩一区二区精品| 在线观看视频一区| 91片在线免费观看| 高清久久久久久| 麻豆精品视频在线观看视频| 夜夜操天天操亚洲| 中文字幕制服丝袜一区二区三区 | 中文字幕字幕中文在线中不卡视频| 欧美美女网站色| 色www精品视频在线观看| 国产一区二区三区黄视频 | 久久精品亚洲国产奇米99| 欧美一级视频精品观看| 欧美三级视频在线| 欧美色综合久久| 91麻豆精品秘密| 91丨porny丨首页| av不卡在线播放| 国产成人午夜片在线观看高清观看 | 日韩免费电影网站| 91精品国产免费| 欧美一级二级在线观看| 777奇米四色成人影色区| 欧美日韩亚洲另类| 国产精品综合一区二区三区| 精品一区免费av| 久久99在线观看| 国产麻豆精品视频| 国产福利一区二区三区| 国产精品18久久久久久久久久久久 | 色综合久久天天综合网| 99热国产精品| 欧美在线制服丝袜| 欧美男女性生活在线直播观看| 欧美日韩精品欧美日韩精品一 | 欧美日本在线播放| 在线电影院国产精品| 欧美精品自拍偷拍动漫精品| 欧美高清视频不卡网| 日韩一区二区在线看| 精品久久久久久亚洲综合网| 亚洲精品一区二区三区福利| 2023国产精品| 国产精品久久久久久久蜜臀| 亚洲美女精品一区| 亚洲观看高清完整版在线观看| 性做久久久久久免费观看| 欧美aaa在线| 国产激情一区二区三区四区| 成人不卡免费av| 欧美性色欧美a在线播放| 日韩丝袜美女视频| 国产日韩成人精品| 一二三四区精品视频| 日本欧美在线看| 国产精品一区二区在线观看网站 | 欧美一区二区三区免费视频| 久久美女艺术照精彩视频福利播放 | 一级女性全黄久久生活片免费| 亚洲第一会所有码转帖| 卡一卡二国产精品| 成人午夜激情在线| 欧美日韩中文另类| 久久精品日产第一区二区三区高清版 | 国产精品午夜在线观看| 一区二区三区日韩| 国产一区二区三区美女| 日本电影亚洲天堂一区| 精品久久国产字幕高潮| 自拍偷拍国产亚洲| 看电影不卡的网站| 日本韩国一区二区三区视频| 91精品国产高清一区二区三区| 欧美国产精品一区二区| 手机精品视频在线观看| av高清久久久| 精品久久久久av影院| 一区二区三区四区高清精品免费观看| 蜜桃av一区二区三区| 99re这里只有精品视频首页| 欧美一区二区三区四区五区| 亚洲欧洲在线观看av| 蜜臀av一区二区三区| 欧美性一级生活| 中文字幕 久热精品 视频在线| 日韩福利视频网| 色综合婷婷久久| 国产亚洲精品aa| 日本女优在线视频一区二区| av高清不卡在线| 国产三级一区二区| 麻豆免费精品视频| 欧美日本在线一区| 亚洲精品视频免费看| 国产成人av一区二区三区在线| 91精品国产免费| 亚洲福利一二三区| 在线视频欧美区| 中文字幕欧美国产| 国产乱色国产精品免费视频| 欧美日韩高清一区二区不卡| 亚洲免费在线观看| 99精品视频在线观看| 国产清纯在线一区二区www| 久久99精品久久久久久国产越南 | 国产一区二区三区在线观看精品| 欧美日韩国产美| 亚洲曰韩产成在线| 91九色最新地址| 日韩美女啊v在线免费观看| 国产91高潮流白浆在线麻豆| 日韩欧美的一区| 免费看欧美美女黄的网站| 欧美精品在线一区二区| 亚洲国产日韩av| 日本丰满少妇一区二区三区| 亚洲人成精品久久久久| 91丝袜国产在线播放| 中文字幕日本不卡| 成人app在线| 最新国产の精品合集bt伙计| 成人精品gif动图一区| 国产精品丝袜久久久久久app| 国产激情偷乱视频一区二区三区| 久久免费看少妇高潮| 国产精品2024| 国产精品久久久爽爽爽麻豆色哟哟| 国产a久久麻豆| 国产精品欧美一区喷水| 成人听书哪个软件好| 综合网在线视频| 欧美专区日韩专区| 日韩在线播放一区二区| 在线成人av影院| 久久精品99国产国产精| 久久欧美一区二区| 岛国av在线一区| 亚洲乱码日产精品bd| 欧美视频中文字幕| 美女免费视频一区| 国产区在线观看成人精品| 北条麻妃国产九九精品视频| 亚洲同性gay激情无套| 欧美性生活影院| 免费成人av在线| 国产欧美日韩精品一区| 91亚洲精品久久久蜜桃网站 | 国产精品一区一区| 日韩一区日韩二区| 欧美日韩你懂的| 久久99日本精品| 国产精品不卡在线| 91.成人天堂一区| 国产一区二区中文字幕| 中文字幕人成不卡一区| 欧美剧情电影在线观看完整版免费励志电影| 蜜臀av国产精品久久久久| 欧美韩国日本一区| 欧美日韩视频不卡| 国产成人免费视频网站高清观看视频| 亚洲丝袜美腿综合| 日韩精品综合一本久道在线视频| 高清日韩电视剧大全免费| 亚洲国产精品麻豆| 久久理论电影网| 欧美亚洲高清一区| 国产成人免费av在线| 亚洲国产精品人人做人人爽| 久久久久久久久蜜桃| 欧美性生活影院| 国产91精品精华液一区二区三区| 亚洲精品国产精华液| 欧美成人综合网站| 在线观看亚洲精品视频| 国产老妇另类xxxxx| 亚洲国产日日夜夜| 国产拍欧美日韩视频二区| 欧美精品久久天天躁| 成人一级视频在线观看| 日韩电影免费一区| 18成人在线观看| 久久久久久**毛片大全| 欧美久久一区二区|