標(biāo)題: 51單片機(jī)C語(yǔ)言增加數(shù)值問(wèn)題 [打印本頁(yè)]

作者: 1454512618    時(shí)間: 2023-7-25 09:24
標(biāo)題: 51單片機(jī)C語(yǔ)言增加數(shù)值問(wèn)題
   請(qǐng)教各位大佬,如何使用C語(yǔ)言對(duì)51單片機(jī)對(duì)一個(gè)數(shù)進(jìn)行固定步長(zhǎng)的增加,每按一下增加按鈕加1,長(zhǎng)按加5。問(wèn)題在于如何每次增加都要是5 10 15以此類推,比如:01. 02 03...小于五的時(shí)候長(zhǎng)按要變成05 大于等于5的時(shí)候長(zhǎng)按變成10。描述能力有限,表達(dá)不是很清晰,求大佬解答,先謝謝了。


作者: 熱度三分    時(shí)間: 2023-7-25 14:32
也就是說(shuō)你每次長(zhǎng)按增加按鈕數(shù)值必須為5的倍數(shù)是吧,短按則在原變量上加1。短按比較簡(jiǎn)單直接在原變量上加1即可,長(zhǎng)按我的思路是先判斷變量大小,如果小于5直接賦值5即可,第二種情況大于等于5,先將變量除以5取余,然后再用變量+(5-余數(shù))=變量即可。例如已經(jīng)短按加到了7,7除5取余等于2,最終結(jié)果應(yīng)該是7+(5-2)=10.這樣就達(dá)成要求啦
作者: zsyzdx    時(shí)間: 2023-7-25 15:59
正常加,比如短按+1,長(zhǎng)按的時(shí)候+5,長(zhǎng)按的數(shù)據(jù)除以5的余數(shù),得到余數(shù)后用5減,得到的數(shù)和原來(lái)的數(shù)相加就可以了。
作者: 1454512618    時(shí)間: 2023-7-25 16:22
zsyzdx 發(fā)表于 2023-7-25 15:59
正常加,比如短按+1,長(zhǎng)按的時(shí)候+5,長(zhǎng)按的數(shù)據(jù)除以5的余數(shù),得到余數(shù)后用5減,得到的數(shù)和原來(lái)的數(shù)相加就可 ...

謝謝解答
作者: 1454512618    時(shí)間: 2023-7-25 16:23
熱度三分 發(fā)表于 2023-7-25 14:32
也就是說(shuō)你每次長(zhǎng)按增加按鈕數(shù)值必須為5的倍數(shù)是吧,短按則在原變量上加1。短按比較簡(jiǎn)單直接在原變量上加1 ...

謝謝解答
作者: lkc8210    時(shí)間: 2023-7-25 22:09
  1. if(KeyVal==Press_Short)
  2. {
  3.         KeyVal=Press_Null;
  4.         TarVal++;       
  5. }else if(KeyVal==Press_Long)
  6. {
  7.         uint i = 5;
  8.         KeyVal=Press_Null;
  9.         while(TarVal>=i)
  10.         {
  11.                 i+=5;
  12.         }
  13.         TarVal=i;       
  14. }
復(fù)制代碼

作者: wulin    時(shí)間: 2023-7-25 22:18
num不等于5的整數(shù)倍+-到5的整數(shù)倍
長(zhǎng)按+5操作 num-=num%5;num+=5;
長(zhǎng)按-5操作 if(num%5==0)num-=5;else num-=num%5;
作者: hy47566398    時(shí)間: 2023-7-26 02:24
FiveNum = FiveNum  - FiveNum%5;
or
FiveNum = FiveNum - FiveNum%5 + 5;
作者: 1454512618    時(shí)間: 2023-7-26 08:20
wulin 發(fā)表于 2023-7-25 22:18
num不等于5的整數(shù)倍+-到5的整數(shù)倍
長(zhǎng)按+5操作 num-=num%5;num+=5;
長(zhǎng)按-5操作 if(num%5==0)num-=5;else n ...

謝謝解答
作者: 1454512618    時(shí)間: 2023-7-26 08:21
hy47566398 發(fā)表于 2023-7-26 02:24
FiveNum = FiveNum  - FiveNum%5;
or
FiveNum = FiveNum - FiveNum%5 + 5;

謝謝解答




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