熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2024-4-29 17:25
正文摘要:我想用單片機(jī)的定時(shí)器來測頻率,參考的是國民技術(shù)的M0的031和其中的例程,我自己是這么想的,因?yàn)樗接邢奘謨砸差I(lǐng)會(huì)不夠,想象中和實(shí)際有不對的地方也請指出,先多謝了。 我想就用48M的時(shí)鐘做定時(shí)器時(shí)鐘去測外部15 ... |
hisun 發(fā)表于 2024-5-2 16:17 好深?yuàn)W,這個(gè)已經(jīng)超出了我的知識(shí)范圍了..... |
Y_G_G 發(fā)表于 2024-5-2 12:49 非常感謝答復(fù)指點(diǎn)。 我是想這么用的,傳感器在傳送帶上,傳送帶每秒速度最大可以達(dá)到2米/秒,按最小檢測異物來說,每毫秒傳送帶走2毫米在傳感器上反映相位移動(dòng)了10度這樣子,我在搜索見到的計(jì)頻法或者計(jì)時(shí)法測頻率想要準(zhǔn)確的話都需要一定時(shí)間累積才可以獲得比較準(zhǔn)確的頻率,但是我這樣用累積時(shí)間過長可能最小異物已近沖過傳感器,信號(hào)太弱無法分辨出是干擾還是確有異物過去,檢測失敗。 為了檢測最小異物,我就想最好是每個(gè)信號(hào)周期都能得出它的時(shí)間寬度,當(dāng)有異物在傳感器下通過時(shí),它的時(shí)間寬度會(huì)有個(gè)跳變。而之所以這么說,是因?yàn)槲矣檬静ㄆ骺床ㄐ危?dāng)有異物貼近時(shí)波形會(huì)有1.1us的移動(dòng),但在X軸上用光標(biāo)看信號(hào)的寬度時(shí)間,和沒有異物貼近時(shí)的寬度時(shí)間基本沒有變化,或者說在時(shí)間上調(diào)動(dòng)光標(biāo)到兩者相同位置感覺不到有什么變化基本都是15K信號(hào)時(shí)的寬度66.6us寬度,示波器上顯示出的頻率波動(dòng)也是看不出有什么特別變化,所以用頻率來識(shí)別異物的方法是行不通的,同時(shí)信號(hào)的電壓幅度也看不出來有什么變化,所以用檢測電壓幅的方法來識(shí)別異物也是行不通的。移除異物后信號(hào)又會(huì)回到原始位置,所以我認(rèn)為是異物造成信號(hào)相位發(fā)生了變化--至于這個(gè)理解,有壇友質(zhì)疑我所認(rèn)為的相位有變化是錯(cuò)誤的,給我的感覺是壇友認(rèn)為同一個(gè)信號(hào)在示波器上是不能夠確認(rèn)相位發(fā)生了變化,是我不會(huì)使用示波器造成的錯(cuò)誤理解。而我認(rèn)為是會(huì)發(fā)生相位變化的,因?yàn)檫@個(gè)信號(hào)相位的變化是發(fā)生在有異物和無異物的不同時(shí)間內(nèi)進(jìn)行比較的,完全可能有相位變化進(jìn)行比較,多說這兩句,如果我理解有錯(cuò)誤還請能指點(diǎn),我確實(shí)不會(huì)理論,示波器也是才買來學(xué)習(xí)不怎么會(huì)用。我丟把菜刀進(jìn)去,信號(hào)相位和原始的變化了約30度,但是信號(hào)的周期寬度,頻率,電壓幅度還是看不出來有什么變化。 昨晚又搜到個(gè)等精度頻率測量方法,這個(gè)似乎比計(jì)頻法和計(jì)時(shí)法的精度都高很多,但是這個(gè)原理還是沒理解出來,沒搞懂,也還要多用一個(gè)定時(shí)器。 |
hisun 發(fā)表于 2024-4-30 20:46 如果你是一個(gè)范圍很寬的頻率,比如是從0.1HZ到20KHZ都有,那么單一的定時(shí)器肯定就不行了 你可以使用端口中斷加定時(shí)器來計(jì)算 當(dāng)出現(xiàn)一個(gè)下降沿的時(shí)候,就開啟定時(shí)器,定時(shí)器不用分頻,開啟中斷,每次溢出都把時(shí)間累加,直到出現(xiàn)下降沿,再停止定時(shí)器,這樣不就得到一個(gè)高電平的總時(shí)間了嗎? 你也可以用上升沿和下降沿來區(qū)分高電平和低電平,并把時(shí)間累加,這樣,你就會(huì)得到一個(gè)高電平時(shí)間和低時(shí)間 再把時(shí)間進(jìn)行一下平均值濾波,這就得到一個(gè)頻率了,誤差不會(huì)太大的 |
Y_G_G 發(fā)表于 2024-4-30 00:10 先謝了。 我想用計(jì)時(shí)法去測頻率。每一個(gè)測量周期都要得出當(dāng)前的頻率是多少。 如果定時(shí)器時(shí)鐘是48M去測外部一個(gè)15K的信號(hào)的真實(shí)頻率,應(yīng)該每個(gè)周期計(jì)時(shí)是48000000/15000=3200個(gè),如果計(jì)時(shí)誤差為1那么測得的頻率誤差是不是就差了1/3200×15000≈4.7hz?如果按例程中進(jìn)入定時(shí)器中斷后再獲取定時(shí)器的值,再根據(jù)定時(shí)器的值來計(jì)算頻率,定時(shí)器中的實(shí)際值應(yīng)該會(huì)比實(shí)際值更大頻率誤差也就更大。如果能知道從定時(shí)器進(jìn)入中斷到獲取定時(shí)器值經(jīng)過了多少周期,將獲得的定時(shí)器值減去這段時(shí)間的周期值,那是不是可以得到更接近真實(shí)3200的值?從而得到誤差更小?單片機(jī)的晶振是48M,定時(shí)器的時(shí)鐘也同樣是這個(gè)48M就可以不用考慮晶振漂移的問題,假設(shè)的條件是外部信號(hào)幅度保持穩(wěn)定不變。 不用計(jì)頻法來測頻率是因?yàn)樾枰米銐蜷L的時(shí)間和足夠準(zhǔn)確的定時(shí)周期才能得到準(zhǔn)確的外部頻率測量,沒有那么長的時(shí)間去累加外部信號(hào)個(gè)數(shù),我想要每1ms也就是最多計(jì)15個(gè)外部信號(hào)就要得出準(zhǔn)確的外部信號(hào)頻率是多少,不管是計(jì)頻還是計(jì)時(shí)法算出來的頻率如果和真實(shí)頻率差個(gè)幾十上百hz就沒有意義了。 上面只是我的想法,對定時(shí)器不熟不知道這樣理解是否正確,還望指教。 |
你認(rèn)為而已,實(shí)際設(shè)置在低電平停止計(jì)數(shù),所以這個(gè)數(shù)值取決于信號(hào)而不是你的程序,你的程序只需要保證在低電平內(nèi)讀數(shù)清零就可以,這個(gè)時(shí)間是很久的 |
不要用8051的思路去學(xué)32 測量有定時(shí)器 精確延時(shí)有滴答時(shí)鐘 |
有流水線的體系結(jié)構(gòu)都不談每條指令的執(zhí)行時(shí)間。比如你代碼里面的BEQ如果成功了,流水線就會(huì)被清空重新加載,誰知道時(shí)間是多少? |
Powered by 單片機(jī)教程網(wǎng)