久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 184|回復(fù): 0
收起左側(cè)

使用回差遲滯比較切換LED閃爍模式

[復(fù)制鏈接]
ID:1155837 發(fā)表于 2025-7-2 16:58 | 顯示全部樓層 |閱讀模式
最近在做電量顯示功能,但是遇到了LED模式會(huì)在切換閾值附近反復(fù)震蕩的問題,于是就寫了一段回差遲滯比較的代碼,在這里分享出來,做類似功能的可以參考
unsigned char ledmode = 0;//ledmode全局變量聲明
//電壓比較,ledmode切換函數(shù),實(shí)現(xiàn)20mv窗口的回差遲滯比較,避免在閾值震蕩
bit initcurrentseg = 0;//ledmode函數(shù)中上電時(shí)或初始化時(shí),是否給current賦值為ideal的標(biāo)志,休眠時(shí)清空
void LED_MODE(void){
    static unsigned char currentseg = 0;//當(dāng)前電壓段
    static unsigned char idealseg = 0;//理想電壓段
    if(vcc>=4000){//為理想電壓段賦值
        idealseg = 0;}
    else if(vcc>=3800){
        idealseg = 1;}
    else if(vcc>=3400){
        idealseg = 2;}
    else if(vcc>=2750){
        idealseg = 3;}
    else{
        idealseg = 4;}
    if(idealseg == 4 && !charging){//如果當(dāng)前電壓跌到2750mv以下,且沒有充電
        //如果在充電,就不進(jìn)入虧電狀態(tài),實(shí)際上充電時(shí)并不會(huì)調(diào)用這個(gè)函數(shù),但不影響功能,所以保留
        outpower = 1;
        return;//不執(zhí)行后面的程序
        }
    else{
        outpower = 0;}
    if(!initcurrentseg){//檢測(cè)初始化標(biāo)志,防止分支無命中
        currentseg = idealseg;//將當(dāng)前值賦值為理想值
        initcurrentseg = 1;//已初始化
    }
    if(idealseg == currentseg){
        ledmode = idealseg;//直接賦值
        return;//不執(zhí)行下面的switch和ledmode賦值操作
    }
    switch(idealseg){//如果需要切換ledmode,執(zhí)行下面的
        case 0://idealseg=0
            if(currentseg==1 && vcc>=4020){//電壓差20mv以上才恢復(fù)到mode0狀態(tài)
                currentseg = 0;}
            break;
        case 1://idealseg=1
            if(currentseg==0 && vcc<4000){
                currentseg = 1;}
            else if(currentseg==2 && vcc>=3820){
                currentseg = 1;}
            break;
        case 2://idealseg=2
            if(currentseg==1 && vcc<3800){
                currentseg = 2;}
            else if(currentseg==3 && vcc>=3420){
                currentseg = 2;}
            break;
        case 3://idealseg=3
            if(currentseg==2 && vcc<3400){
                currentseg = 3;}
            else if(currentseg==4 && vcc>=2770){
                currentseg = 3;}
            break;
        case 4://idealseg=4
            if(currentseg==3 && vcc<2750){
                currentseg = 4;}
            break;
        }
        ledmode = currentseg;//輸出led模式
    }

評(píng)分

參與人數(shù) 1黑幣 +10 收起 理由
wpppmlah + 10 贊一個(gè)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 激情五月激情综合网 | 免费a在线观看 | 日韩精品一区二区在线 | 欧美日韩啪啪 | 在线观看黄色片 | 日韩亚洲天堂 | 黄网在线免费观看 | 黄www. | 懂色av一区二区夜夜嗨 | 国产精品三级在线 | 国产成人网 | 黄色成人免费网站 | 日韩在线播放视频 | 老司机精品福利视频 | 欧美日韩91 | 日韩中文字幕一区二区 | 日皮视频免费看 | 久久免费高清视频 | 黄色小视频免费观看 | 久久精品一区二区三区不卡牛牛 | 色婷婷香蕉在线一区二区 | 国产又猛又黄又爽 | 日本激情在线 | 国产永久精品 | www.亚洲国产| 91亚洲精品乱码久久久久久蜜桃 | 一区二区三区在线播放 | 在线视频a | 亚洲免费大片 | 一区二区三区免费在线观看 | 1024日韩| 成人做受黄大片 | 亚洲天堂免费视频 | 国产成人精品一区二区三区在线 | 日本中文字幕在线观看 | 成人三级晚上看 | 黄色片www| 欧美aaaaa| 国产理论视频 | 在线少妇| 日本在线不卡视频 |