最新免费av在线观看,亚洲综合一区成人在线,中文字幕精品无码一区二区三区,中文人妻av高清一区二区,中文字幕乱偷无码av先锋

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

參考書上看到精確定時(shí)的概念不理解,就拿來(lái)讓大蝦給我講解下了

作者:lh9865 欄目:單片機(jī)
參考書上看到精確定時(shí)的概念不理解,就拿來(lái)讓大蝦給我講解下了
引書中原文:
    在嵌入式應(yīng)用系統(tǒng)中,一般是按晶振標(biāo)稱值設(shè)置晶振的預(yù)分頻系數(shù)和定時(shí)器的固定時(shí)間常數(shù),對(duì)晶振頻率預(yù)分頻后的輸出進(jìn)行計(jì)數(shù),當(dāng)定時(shí)器產(chǎn)生溢出中斷時(shí)得到時(shí)間信號(hào)。這種傳統(tǒng)的定時(shí)方法有以下缺點(diǎn):
     1. 晶體實(shí)測(cè)頻率并不與標(biāo)稱值相符(有的誤差較大,超過(guò)萬(wàn)分之一),導(dǎo)致定時(shí)時(shí)間誤差。
     2. 即使晶體實(shí)測(cè)頻率與標(biāo)稱值接近,采用固定時(shí)間常數(shù)也存在分頻余數(shù)問題,同樣影響定時(shí)精度。
     3. 為提高定時(shí)精度,預(yù)分頻檔次不能太粗,即預(yù)分頻系數(shù)要適當(dāng)小些,以降低分頻余數(shù)產(chǎn)生的誤差。但這樣導(dǎo)致定時(shí)時(shí)間短,要取得較長(zhǎng)定時(shí)信號(hào)(如秒號(hào))須對(duì)短定時(shí)(中斷)信號(hào)計(jì)數(shù)獲得,致使累計(jì)誤差變大。
。。。。。
     精確定時(shí)實(shí)現(xiàn)的方法是先測(cè)出晶體的實(shí)際頻率,對(duì)經(jīng)過(guò)預(yù)分頻后的脈沖頻率設(shè)定兩個(gè)時(shí)間常數(shù)----主常數(shù)和補(bǔ)償常數(shù)(TCC),在重裝時(shí)間常數(shù)時(shí)對(duì)常數(shù)進(jìn)行補(bǔ)償;還可以定時(shí)效果修正時(shí)間常數(shù),達(dá)到精確定時(shí)的目的。
    設(shè)晶體實(shí)測(cè)頻率為fi,選AVR單片機(jī)定時(shí)期/計(jì)數(shù)器TCNT1為定時(shí)器,其定時(shí)輸入為fct1信號(hào)(主頻經(jīng)分頻器的輸出),精確定時(shí)設(shè)定2個(gè)時(shí)間好常數(shù):一個(gè)為主常數(shù),為方便起見,設(shè)為65536,該常數(shù)下,TCNT1溢出(n-1)次;另一個(gè)為補(bǔ)償常數(shù)TCC(余數(shù)),該常數(shù)下TCNT1只溢出一次,溢出后即將常數(shù)改為65536(只須記中斷次數(shù)而不必重裝)。如要定出秒信號(hào),由下式解出TCC及n(正整數(shù)):
          0〈=TCC= 65536*n-INT(fi/K+0.5)<65536

我不明白的是:
           我在實(shí)際編程的時(shí)候,按照上文所說(shuō),我能做的如下:
           1. 測(cè)出實(shí)際頻率
           2 .按照公式算出TCC
           3. 編程時(shí),如果需要定時(shí)8次,那就按主常數(shù)加載7次,中斷溢出7次,查詢中斷完畢,裝入補(bǔ)償常數(shù),中斷一次,就輸出秒號(hào)
   我對(duì)于上面的公式不理解,不知道實(shí)際頻率是大還是小,如果是大的話,那就是一個(gè)實(shí)際的計(jì)數(shù)值變小了,在實(shí)際的定時(shí)中,應(yīng)該是與補(bǔ)償時(shí)間的加和值的
   還有為什么是補(bǔ)償中斷只是中斷一次呢?
    精確定時(shí)有諸多困惑,我知我理解的肯定是有很大的偏差,想著請(qǐng)大蝦幫忙        


2樓: >>參與討論
平常人
樓主不要只看書,自己也思考一下、演算一下,這個(gè)問題不難
設(shè)想一個(gè)標(biāo)稱8MHZ的晶振,經(jīng)8分頻計(jì)數(shù),一秒要計(jì)數(shù)100萬(wàn)次,若晶振較快是8,000,800,則一秒應(yīng)計(jì)數(shù)1,000,100次,若晶振較慢是7,999,200,則一秒就計(jì)數(shù)999,900次。

自己推導(dǎo)一下就有了,動(dòng)動(dòng)腦子,有何難?

3樓: >>參與討論
xwj
這都想不通?LZ多動(dòng)動(dòng)腦筋啊
首先,要明白什么叫精確定時(shí)
由于定時(shí)計(jì)數(shù)器一般都只有16位,計(jì)滿也不到1秒,所以1秒必然要多次中斷

計(jì)數(shù)器是不停往上面加的
當(dāng)計(jì)數(shù)值從0xFFFF再加1就會(huì)翻轉(zhuǎn)到0,同時(shí)產(chǎn)生溢出中斷
16位計(jì)數(shù)器從0計(jì)數(shù)到0是65536次,精確計(jì)數(shù)方法這時(shí)是不去動(dòng)計(jì)數(shù)值的,所以比較精確

你仔細(xì)想想要計(jì)數(shù)8000000次應(yīng)該怎么做?應(yīng)該中斷幾次?

實(shí)際上51系列除了89C51外都有T2,T2是可以設(shè)為自動(dòng)重載的
AVR的計(jì)數(shù)器可以選擇比較OCRxA時(shí)自動(dòng)翻轉(zhuǎn),這個(gè)是可通過(guò)程序控制的,
合理應(yīng)用比你引用的文章更方便


你引用的文章也是有很多局限性的,實(shí)際上還是有誤差,因?yàn)橐犬?dāng)前指令執(zhí)行完才會(huì)進(jìn)中斷,而51或AVR的指令周期都是等長(zhǎng)的,所以觸發(fā)后進(jìn)入中斷的時(shí)間是不確定的
正確的做法是中斷后讀取當(dāng)前計(jì)數(shù)器值,加上補(bǔ)償余數(shù),同時(shí)還要考慮這些指令的時(shí)間

高手和低手的差別就看對(duì)器件能熟悉到什么程度
考慮問題能周到到什么程度
怎樣把硬件功能發(fā)揮到淋漓盡致,玩出更多的花樣

這些先不管,你先想明白他的方法再說(shuō)吧


4樓: >>參與討論
lh9865
謝謝諸位的指點(diǎn),因?yàn)閯偨佑|,所以理解上有些吃力了
 
5樓: >>參與討論
NE5532
沒有定時(shí)是“精確”的,除非是純硬件。
 
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
ATtiny26LAD采集電壓低的時(shí)候出現(xiàn)不正確,是否有高手可以解決?
iccavr中vector區(qū)以及_exit函數(shù)是做什么用?
請(qǐng)問哪里有 CodeVisionAVR 1.25.1 注冊(cè)板?(CVAVR)
求sd2300程序
請(qǐng)問:AVR手冊(cè)中,寄存器前面的兩個(gè)地址各代表什么?
免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 udpf.com.cn 浙ICP證030469號(hào)