找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

求解單片機自行車里程的速度計算

[復制鏈接]
跳轉到指定樓層
#
ID:169237 發(fā)表于 2017-5-14 18:46 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
void menu_dis()          //計算速度函數
{
        static uchar value;
        if(menu_1 == 0)
        {       
                if(flag_1s == 1)   
                {       
                        flag_1s = 0;                
                        if(flag_en == 0)
                        {
                                value ++;
                                if(value >= 3)        //2秒
                                {       
                                        speed_km = 0;  //速度為0
                                        shudu = (uint)speed_km;       
                                        value = 0;                               
                                }
                        }
                        if((flag_en == 1))
                        {       
                                value = 0;               
                                flag_en = 0;         
                                 //1s = 1 / 1000000us;          // 1m/s=3.6km/h                       
                                f_hz = (t2_num * 65536.0 + TH11 * 256 + TL11) / 1000000 ;  //算出來就是秒
                                t2_num = 0;        //把變量清零
                                TH11 = 0;
                                TL11 = 0;                                          
                                speed_m = f_hz * zhijing * 3.14  ;        //算出來的是m/s
                                juli_z = (juli_z + (uint)speed_m) ;        //總路程m       
                                speed_km = speed_m * 3.6 ;        //(帶個小數點) km/h               
                            shudu = (uint)speed_km;
                                zong_lc += speed_m;
                        }               
                        write_sfm2(1,3,shudu);               
                        write_sfm4(2,3,juli_z);       
                }
        }
}

f_hz = (t2_num * 65536.0 + TH11 * 256 + TL11) / 1000000 ;  //算出來就是秒
speed_m = f_hz * zhijing * 3.14  ;        //算出來的是m/s
這兩句不理解

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:200784 發(fā)表于 2017-5-14 23:16 | 只看該作者
定時器計數滿0xFFFF(65536)溢出一次,t2_num 是定時器溢出計數值,那么溢出時間 = t2_num * 65536 ;TH11(高8位) 和 TL11(低8位) 是定時器正在計數的值,因為TH11 是高8位,所以算計數值時需要 * 256,定時器正在計數值 = TH11 * 256 + TL11 。那么總計數值 = 溢出次數 * 65536 +  TH11 * 256 + TL11 。 希望能幫到你。
回復

使用道具 舉報

樓主
ID:7485 發(fā)表于 2017-5-14 20:38 | 只看該作者
只看著一點程序是看不明白的。但是感覺這兩句是有點不對。
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

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