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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3016|回復: 1
收起左側

單片機PCA模塊軟件16位定時器的步進值問題

[復制鏈接]
ID:391717 發表于 2019-3-2 09:04 | 顯示全部樓層 |閱讀模式
  STC的PCA模塊16位定時器,當[CH,CL]計數到跟[CCAPH,CCAPL]里的數值"匹配"時,若設置了中斷允許,將發生比較匹配中斷.在中斷處理函數里,要求給
CCAPH,CCAPL賦一個不斷增加的固定的值,才能實現定時,這跟普通的T0,T1定時器不同.我的疑問是,當[CCAPH,CCAPL]增大到65536時,就變0了,怎么還能有固定的"步進"呢?[CH,CL]要等于越來越大的[CCAPH,CCAPL],計數所需時間會越來越長,怎么會定時?請對此有研究的老師指教一二,謝謝!

回復

使用道具 舉報

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

評分

參與人數 1黑幣 +100 收起 理由
admin + 100 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表