找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2161|回復(fù): 4
收起左側(cè)

新人求教51單片機(jī)中的一個(gè)C函數(shù)。

[復(fù)制鏈接]
ID:163873 發(fā)表于 2017-2-10 14:59 | 顯示全部樓層 |閱讀模式
PC上,有一個(gè)函數(shù)是GetTickCount(),獲取當(dāng)前系統(tǒng)運(yùn)行后的毫秒數(shù)。
我想問問,51里有沒有這個(gè)函數(shù)???

我想要實(shí)現(xiàn)的功能是,計(jì)算2次外部中斷之間所經(jīng)過的時(shí)間,或者是系統(tǒng)計(jì)數(shù)器減少了多少值。外部中斷可以使一個(gè)霍爾、或者是一個(gè)紅外光耦,或者是一個(gè)按鍵。
回復(fù)

使用道具 舉報(bào)

ID:123289 發(fā)表于 2017-2-12 07:31 | 顯示全部樓層
假設(shè)是可以的:請問,系統(tǒng)運(yùn)行后的毫秒數(shù)放在何處,由“誰”生成這個(gè)計(jì)時(shí)的東東呢?
看來樓主對PC機(jī)上的GetTickCount()是如何產(chǎn)生的,也一無所知。
回復(fù)

使用道具 舉報(bào)

ID:123289 發(fā)表于 2017-2-12 07:47 | 顯示全部樓層
如何計(jì)算2次外部中斷之間所經(jīng)過的時(shí)間?
1、增加一個(gè)計(jì)時(shí)器如:JS,JS由另一個(gè)時(shí)間中斷程序進(jìn)行控制,要求時(shí)間中斷級別高于外部中斷。
2、在外部中斷程序中:先停止JS,再統(tǒng)計(jì)JS的時(shí)間(就是你需要的),再復(fù)位起動JS為下次統(tǒng)計(jì)做準(zhǔn)備。
這樣:只有第一次外部中斷后,得到的JS時(shí)間是錯(cuò)誤的,以后每次得到的時(shí)間就是需要的了。為什么?自己想。如何去除第一次不準(zhǔn)確的JS?也自己想吧。
回復(fù)

使用道具 舉報(bào)

ID:153041 發(fā)表于 2017-2-14 16:42 | 顯示全部樓層
這個(gè)超簡單。合扔枚〞r(shí)器做1ms刻度的中斷,每次1ms到了之后進(jìn)中斷讓一個(gè)全局變量加1;  主程序里面,第一個(gè)外部中斷信號來了之后,把這個(gè)全局變量等于0,第二個(gè)中斷信號來了之后,直接讀取這個(gè)變量,就是具體經(jīng)歷的毫秒數(shù)啦。
回復(fù)

使用道具 舉報(bào)

ID:472242 發(fā)表于 2019-2-7 01:17 | 顯示全部樓層
utzuzu 說的很不錯(cuò),要向utzuzu 多學(xué)習(xí)解決問題, 而不要向上面的二貨推搡問題,

評分

參與人數(shù) 6黑幣 +105 收起 理由
鉆牛尖滴劉尖尖 + 15
sheng7533967 + 15
站著說話不腰疼 + 15
Sawardeakar + 10
zhengchong60 + 15
shuisheng + 35

查看全部評分

回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表