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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1531|回復: 5
打印 上一主題 下一主題
收起左側

單片機C語言按鍵連加連減不是1,如何處理?

[復制鏈接]
跳轉到指定樓層
樓主
ID:686513 發表于 2022-4-3 11:54 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
比如我要加或減到1000,我每按下一次按鍵加5或減5,單片機C語言程序該如何修改?
  switch(key_scan(100))  //key_scan()按鍵判斷
                {
                        
                case 1:
                          switch(wnd)   //wnd為四個窗口中之一的加鍵顯示
                          {                                                
                                       
                        case 0:parm1 = IapRead(0x0400); parm1++;if(parm1>150) parm1=150; IapErase(0x0400);IapProgram(0x0400, parm1);break;        
                        case 1:parm2 = IapRead(0x0500); parm2++;if(parm2>150) parm2=150; IapErase(0x0500);IapProgram(0x0500, parm2);break;  
                        case 2:parm3 = IapRead(0x0600); parm3++;if(parm3>995) parm3=955; IapErase(0x0600);IapProgram(0x0600, parm3);break;      
                        case 3:parm4 = IapRead(0x0700); parm4++;if(parm4>250) parm4=250; IapErase(0x0700);IapProgram(0x0700, parm4);break;                                                            
                        }                                       
                        break;
   
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:96744 發表于 2022-4-3 15:39 | 只看該作者
最簡單的,就是 parm1++改成 parm1=parm1+5;

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:686513 發表于 2022-4-6 08:48 | 只看該作者
alunli 發表于 2022-4-3 15:39
最簡單的,就是 parm1++改成 parm1=parm1+5;

謝謝了,一開始也是這樣改的,不行才問,現在好了!
回復

使用道具 舉報

地板
ID:1016026 發表于 2022-4-6 09:54 | 只看該作者
可以通過按鍵時間來判斷嗎,原來1s加1.改成200ms加1的話行不行呢
回復

使用道具 舉報

5#
ID:686513 發表于 2022-4-7 11:35 | 只看該作者
本帖最后由 zhth1979 于 2022-4-7 11:39 編輯
zhth1979 發表于 2022-4-6 08:48
謝謝了,一開始也是這樣改的,不行才問,現在好了!

只有三位數碼管顯示,如果從0到1000為:parm1=parm1+5;(顯示兩位整數+一位小數)。大于1000,parm1=parm1/10    (parm1縮小10,只顯示三位整數,小數位去掉)這時parm1不加5加1,parm1++,parm1加到150時等于150.如何實現?
void key_Service()
{         
        switch(key_scan(170))
                {                        
                        case 1:
                                  switch(wnd)
                                  {                                                                                       
                                        case 0:T1Cnt=epxs_short; parm1 = Read_EEPROM_u16(0x0400);  parm1 = parm1+5; if(parm1>1000) {parm1=parm1/10;parm1++;} if (parm1>1500) parm1=1500;Save_EEPROM_u16(0x0400, parm1); break;     這樣改后大于1000時(只顯示三位整數時還是加5不是加1)   
回復

使用道具 舉報

6#
ID:686513 發表于 2022-4-8 08:22 | 只看該作者
zhth1979 發表于 2022-4-7 11:35
只有三位數碼管顯示,如果從0到1000為:parm1=parm1+5;(顯示兩位整數+一位小數)。大于1000,parm1=parm ...

自己已經搞定了,不需要回復了!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表