欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機數碼管程序遞加找不出錯在哪里 [打印本頁]

作者: dreams9158    時間: 2019-12-25 12:13
標題: 單片機數碼管程序遞加找不出錯在哪里
                if(STARflag)//如果按下了啟動按鈕,置位
                                {   
                                         Morebyte_Readluf(0x2200);//讀EEPROM中的luf數組中的數據
                                        LL=luf[1]*256;
                                        LL=LL+luf[0];
                                    BL=LL;
                                    Morebyte_Readcuf(0x2400);//讀EEPROM中的cuf數組中的數據
                                    CC=cuf[1]*256;
                                        CC=CC+cuf[0];
                                        numc=CC;
                                        numc+=BL;//每按一次按鈕numc就增加BL值
                                    if(numc>9998)
                                             {
                                               numc=0;
                                             }
                                        CC=numc;
                                                
                                    dct[0]=CC%256; //BB的低八位
                                        dct[1]=CC/256; //BB的高八位
                                        Sector_Erase(0x2400);//擦除扇區
                                    Morebyte_Program(0x2400,dct);//將numc寫入EEPROM中
                                 
                                      SMGBUFFER[4][0]=DuanMa[numc%10]; //四位數碼管待顯示數據
                                    SMGBUFFER[4][1]=DuanMa[numc/10%10];
                                    SMGBUFFER[4][2]=DuanMa[numc/100%10];
                                   SMGBUFFER[4][3]=DuanMa[numc/1000%10];

                                 DISPLAY(4);//顯示函數
                                STARflag=0;//按鍵復位
                                 
           }
求高手指導一下,為什么我的數碼管顯示一直是每按一次加1,而不是加10(BL值我設置為10),謝謝了!!!
作者: wulin    時間: 2019-12-25 14:10
本帖最后由 wulin 于 2019-12-25 15:33 編輯

16位數據可以按字節存EEPROM同一扇區不同地址,讀取后再合并還原為16位數據。
        if(STARflag)//如果按下了啟動按鈕,置位
        {   
                luf[0]=Morebyte_Readluf(0x2200);//讀EEPROM保存的低八位放在在luf[0]緩存數組中
                luf[1]=Morebyte_Readluf(0x2200+1);//讀EEPROM保存的高八位放在在luf[1]緩存數組中
                numc=luf[1]<<8|luf[0];//合并為16位數據
       
                numc+=BL;//每按一次按鈕numc就增加BL值
                if(numc>9998)
                {
                        numc=0;
                }
                dct[0]=numc;                 //緩存低八位,高位溢出
                dct[1]=numc>>8;         //緩存高八位
                Sector_Erase(0x2200);//擦除扇區
                Morebyte_Program(0x2200,dct[0]);//將numc低八位寫入EEPROM中
                Morebyte_Program(0x2200+1,dct[1]);//將numc高八位寫入EEPROM中
       
                SMGBUFFER[4][0]=DuanMa[numc%10]; //四位數碼管待顯示數據
                SMGBUFFER[4][1]=DuanMa[numc/10%10];
                SMGBUFFER[4][2]=DuanMa[numc/100%10];
                SMGBUFFER[4][3]=DuanMa[numc/1000%10];
               
                DISPLAY(4);//顯示函數
                STARflag=0;//按鍵復位
        }


作者: botgs    時間: 2019-12-25 14:19
BL是從EEPROM讀出來的,這里看不到你怎么設置BL的,設置后是否寫到EEPROM中?
作者: dreams9158    時間: 2019-12-25 15:30
botgs 發表于 2019-12-25 14:19
BL是從EEPROM讀出來的,這里看不到你怎么設置BL的,設置后是否寫到EEPROM中?

BL我有設置過并確認己經寫入了EEPRPM的,因為我用另一個按鍵可以調閱已設置好的參數,并在數碼管顯示,結果沒錯,謝謝你的答復
作者: dreams9158    時間: 2019-12-25 17:18
問題找出來了,問題出在哪里呢?顯示的條件是: if(STARflag),可是最后把這個條件否定了:STARflag=0;//按鍵復位,造成了瞬間顯示,根本看不出顯示效果,應該延時一些時間再退出,謝謝回復我的朋友!!!
作者: zhy123654    時間: 2019-12-25 17:22
BL=LL;  LL=luf[1]*256+luf[0];是多少
作者: 未成為大佬    時間: 2019-12-25 17:34
luf[1]和luf[0]是多少啊
作者: dreams9158    時間: 2019-12-25 22:50
zhy123654 發表于 2019-12-25 17:22
BL=LL;  LL=luf[1]*256+luf[0];是多少

具體值有按鍵驅動函數設置,謝謝!
作者: dreams9158    時間: 2019-12-25 22:52
未成為大佬 發表于 2019-12-25 17:34
luf[1]和luf[0]是多少啊

具體值有按鍵驅動函數設置,謝謝!




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1