找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

帖子
查看: 2816|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)PCA模塊軟件16位定時(shí)器的步進(jìn)值問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:391717 發(fā)表于 2019-3-2 09:04 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  STC的PCA模塊16位定時(shí)器,當(dāng)[CH,CL]計(jì)數(shù)到跟[CCAPH,CCAPL]里的數(shù)值"匹配"時(shí),若設(shè)置了中斷允許,將發(fā)生比較匹配中斷.在中斷處理函數(shù)里,要求給
CCAPH,CCAPL賦一個(gè)不斷增加的固定的值,才能實(shí)現(xiàn)定時(shí),這跟普通的T0,T1定時(shí)器不同.我的疑問(wèn)是,當(dāng)[CCAPH,CCAPL]增大到65536時(shí),就變0了,怎么還能有固定的"步進(jìn)"呢?[CH,CL]要等于越來(lái)越大的[CCAPH,CCAPL],計(jì)數(shù)所需時(shí)間會(huì)越來(lái)越長(zhǎng),怎么會(huì)定時(shí)?請(qǐng)對(duì)此有研究的老師指教一二,謝謝!

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

使用道具 舉報(bào)

沙發(fā)
ID:391717 發(fā)表于 2019-3-3 10:28 | 只看該作者
最近查了些資料,將新認(rèn)識(shí)補(bǔ)上,請(qǐng)指正!單片機(jī)T0,T1等計(jì)數(shù)/定時(shí)器,必須[TH,TL]計(jì)數(shù)到65536時(shí)才發(fā)生
溢出中斷,因此如果希望計(jì)數(shù)1000次就發(fā)生中斷,必須在[TH,TL]里預(yù)置一個(gè)固定值64536。有PCA組件的單片機(jī)用其16位計(jì)數(shù)器功能時(shí),若允許比較匹配中斷,則[CH,CL]計(jì)數(shù)到等于[CCAPnH,CCAPnL]里預(yù)設(shè)的值時(shí),即能發(fā)生中斷,但并未溢出!中斷后[CH,CL]一刻不停繼續(xù)計(jì)數(shù)。因計(jì)數(shù)值超過(guò)[CCAPnH,CCAPnL]后,在0--
65536范圍內(nèi)不可能再次發(fā)生比較匹配,因此每一輪0--65536循環(huán)計(jì)數(shù)只能有一次比較匹配中斷,顯然這并不符合各種計(jì)數(shù)/定時(shí)要求。只有在發(fā)生中斷時(shí)在中斷服務(wù)程序里給[CCAPnH,CCAPnL]增加一個(gè)步進(jìn)值,才可能發(fā)生下一次比較匹配中斷。例如,我們希望計(jì)數(shù)1000次就中斷一次,則第一次匹配中斷發(fā)生時(shí)令[CCAPnH,CCAPnL]=1000+1000,則[CH,CL]從1001,1002...計(jì)數(shù)到2000時(shí)就能再次發(fā)生比較匹配中斷。
  若比較匹配中斷發(fā)生時(shí),令[CH,CL]=0,從頭開(kāi)始計(jì)數(shù),則[CCAPnH,CCAPnL]l里就可以放一個(gè)固定步進(jìn)值了,有的程序就是這樣做的。不過(guò)由于PCA組件有幾個(gè)模塊,它們共用[CH,CL]計(jì)數(shù)器。當(dāng)模塊0用于16位計(jì)數(shù)時(shí),也許模塊1正用其PWM功能,所以在中斷處理函數(shù)中令[CH,CL]=0的做法只適合僅使用一個(gè)模塊作16位計(jì)數(shù)/定時(shí)的情況。

評(píng)分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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