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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機旋轉編碼器程序調試問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:232366 發表于 2021-12-31 15:07 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
論壇的各位老鐵你們好!!!向你們請教幾個問題。

uint8 integer=0;//整數
uint8 decimals=0;//小數

是這樣的我搞了一個旋轉編碼器 想法是這樣的:就是說使用4數碼管來顯示旋轉編碼器的值分為整數位和小數位,編碼器控制decimals小數變量加加和減減實現目的是小數每加到99,integer整數步進加1。搞來搞來整數怎么也加不上去  小數減也減不回來。思路倒是有小數每到99整數加1 小數往回減99整數減1在程序上怎么也寫不出來實現不出來看來我還是道行潛了,所以來請教請教論壇的老鐵們,感激不盡!!
下面這函數是我的旋轉編碼器的一個服務函數:


void ROTARY_ROTARY_Service()//旋轉編碼器服務函數放到主循環里循環調用
{
        static xdata uint8 Count=0;

        Count++;
        
        if(Count>=250)
        {
                Count=0;
               
                switch(Read_ROTATE_Data)
                {
                        case(1)://左轉
                                        decimals--;
                                        if(decimals>=99)
                                        {
                                                decimals=99;
                                        }
                                        Read_ROTATE_Data=0;
                                                                                                break;
                        case(2)://右轉
                                        decimals++;
                                        if(decimals>=99)
                                        {
                                                decimals=0;
                                        }
                                        Read_ROTATE_Data=0;
                                                                                                break;
                        default:break;
                }
        }
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:8222 發表于 2021-12-31 18:46 | 只看該作者
  switch(Read_ROTATE_Data)
                {
                        case(1)://左轉
                                        decimals++;
                                        if(decimals>=99)
                                        {
                                                decimals=99;
                                        }
                                        Read_ROTATE_Data=0;
                                                                                                break;
                        case(2)://右轉
                                        decimals--;
                                        if(decimals<=0)
                                        {
                                                decimals=0;
                                        }
                                        Read_ROTATE_Data=0;
                                                                                                break;
                        default:break;
                }
回復

使用道具 舉報

板凳
ID:213173 發表于 2021-12-31 20:51 | 只看該作者
如果按編碼器的一個脈沖算1,用整數計算較好。char型變量范圍127~-128,int型變量范圍32767~-32768。數碼管顯示時在相應的位加小數點即可。
回復

使用道具 舉報

地板
ID:844772 發表于 2022-1-1 18:26 | 只看該作者
我也覺得小數在顯示時考慮就行,不用分開計算,不過你要分開計算小數,可以試試下面改法。
                        case(1)://左轉
                                       
                                        if(decimals=0)
                                        {      if (integer>0)
                                                 {integer--;
                                                 decimals=99;
                                                 }
                                        }else
                                          decimals--;      
                                        Read_ROTATE_Data=0;
                                         break;
                        case(2)://右轉
                                       
                                        if(decimals=99)
                                        {       integer++;
                                                decimals=0;
                                        }else decimals++;
                                        Read_ROTATE_Data=0;
                                        break;
                        default:break;
                }
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人av播放 | 日韩高清中文字幕 | 亚洲一区二区三区在线视频 | 亚洲精品在线观看视频 | 免费看的av| 在线观看免费黄色片 | 黄网站免费在线看 | 久久精品色欧美aⅴ一区二区 | 亚洲自拍偷拍欧美 | 国产伦精品一区二区三区视频金莲 | 黑人巨大精品 | 久久伊人精品 | 精品1区2区| 91精品国产综合久久久久久首页 | 亚洲欧美高清 | 本道综合精品 | 久国久产久精永久网页 | 欧美a级成人淫片免费看 | 国产成人精品免高潮在线观看 | 欧美成人性生活 | 久久精品视频在线免费观看 | 中文字幕综合在线 | 亚洲欧美一区二区在线观看 | 久久精品一| 女女百合av大片一区二区三区九县 | 国产羞羞视频在线观看 | 国产欧美日韩一区 | 国产精品一区二区在线播放 | 午夜成人在线视频 | 天堂成人国产精品一区 | 中文字幕亚洲区一区二 | 中文字幕精品一区二区三区精品 | 久久久精品国产 | 精品久久久久久 | 欧美极品在线视频 | 欧美日韩美女 | 久久精品国产清自在天天线 | 日韩精品在线免费观看视频 | 欧美xxxx色视频在线观看免费 | 成人午夜黄色 | 欧美在线视频一区二区 |