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

標題: 89c51怎么獲取從開始運行到現在的時間? [打印本頁]

作者: tjtlm    時間: 2018-5-19 14:13
標題: 89c51怎么獲取從開始運行到現在的時間?
目的是獲得程序運轉的時間,因為要對電機進行測速,外置了一個傳感器;
現在已經能夠從傳感器得到了電機運轉的圈數 count ,需要把count除以從通電開始到現在的時間才能得到速度。
請問這個時間要怎么做才能得到?


已有定時器程序如下:

作者: 優雅的刺猬    時間: 2018-5-19 14:13
用一個定時器,50毫秒跳一次,二十次加一,主函數初始化完就開中斷,就能計時了。隨便設個整數變量。
作者: 王彤相    時間: 2018-5-20 15:30
為什么要從開始算哪?
作者: 王彤相    時間: 2018-5-20 15:36
不用從運行開始算時間,你可以計算比如一秒時間內的圈數,開啟計數器,同時開啟計圈傳感器,1秒后定時器溢出,引發中斷,再關閉定時器,關閉計圈傳感器。不就解決了。
作者: gordonyjh    時間: 2018-5-20 17:09
在10ms的中斷服務程序中,增加一個計數器,就可以得到時間。那么電機打開的時候,記下這個起始的時間,用當前時間減去起始時間就可以得到運行時間
作者: zhangpan755    時間: 2018-5-20 23:05
電機開始 設置一個標志位  定時器定時  關閉標志位 。之后計算
作者: 清雨lxy    時間: 2018-5-21 00:53
需要計時的話,直接對單片機內部脈沖計數不就好了么,用一個整數的晶振,然后輸出轉換成時間不就是單片機開始到結束的時間了么
作者: 1184332477    時間: 2018-5-21 09:35
用DS1302;也只能這樣了……你想,單片機里面就定時器而已
作者: 程序新手    時間: 2018-5-22 08:27
設置開始到結束兩個標志位 然后計算時間
不過我個人感覺不用算從開始的時間 沒有什么必要
希望對你有幫助
作者: guo6339419    時間: 2018-5-22 11:58
弄一個標志位,開始的時候標志位等于0,然后再進入main函數初始化的時候標志位置1,然后到定時器判斷標志位為1了就開始計時,就好了
作者: song19960220    時間: 2018-5-23 00:01
你可以設置一個中斷,非常好用
作者: tjtlm    時間: 2018-5-23 13:59
優雅的刺猬 發表于 2018-5-22 23:43
用一個定時器,50毫秒跳一次,二十次加一,主函數初始化完就開中斷,就能計時了。隨便設個整數變量。

按回復結合另一個分享的帖子弄好了
作者: tjtlm    時間: 2018-5-23 14:36
優雅的刺猬 發表于 2018-5-19 14:13
用一個定時器,50毫秒跳一次,二十次加一,主函數初始化完就開中斷,就能計時了。隨便設個整數變量。

時間time能得到了,計數count也有了,可是顯示不出來啊

我用的是四位共陽數碼管,buf[]數組的0~3分別是四個位。顯示其他數據的時候例如:buf[1] = 1;display();這樣就能正常顯示,但是速度count/time沒法顯示出來,不知道是不是數據類型的問題?

while(!s5) { //TODO  顯示rs??
        rs = count/time;
        buf[3] = rs/1000 ;
        buf[2] = rs%1000/100;
        buf[1] = rs%100/10 ;
        buf[0] = rs%10;
        display();
}




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