PCA是一個模塊,是一個硬件結構,具體的如下圖所示
16位PCA定時器/計數器相當于定時器0/1。每經過一個時鐘周期會自動加1,時鐘周期來源與下圖幾部分:
一個時鐘周期可能為(SYSclk/1,SYSclk/2...),最后一個外部輸入指的是給他外接的晶振源。
模塊0/1是十六位的捕獲/比較模塊。這個模塊的工作方式有四種: 1、上升/下降沿捕獲 2、軟件定時器 3、高速脈沖輸出 4、克調制脈沖輸出
至于要在哪一個模式下工作,可以通過配置寄存器來進行完成
在手冊中有一個配置表格,我們按自己的要求來進行選擇即可。例如我們選擇 8位PWM,無中斷模式
這是最簡單的模式,去掉那些煩人的中斷,對了雖然PCA模塊可以配置成不同的模式,但是無論在什么模式下,所觸發的任何中斷,都只有一個中斷入口。代號為7。
當將PCA模塊配置成上述模式之后,再經過一些配置后,會出現在相應的引腳發出相應的PWM波形
下來以手冊中例程來對PWM的生成過程進行一個分析。
CMOD = 0x02 //設置PCA的時鐘源為SYSclk/2,并且禁止PCA定時器的溢出中斷
CCAP0H=CCAP0L=0x80; //設置占空比為50%
CCAPM0 = 0X42; //設置PCA的工作模式為8位PWM并且不允許任何中斷
為什么CCAP0H=CCAP0L=0X80 PWM的占空就為50%呢?下來看這幅圖
CL是PCA模塊中的定時器的低八位寄存器,他的變化范圍為0~255,CCAP0L是PCA模塊0的數據寄存器,他的值的取值范圍為0~255,當CCAP0L=0X80時,即CCAP0L=128。
然后128和CL的值進行比較,CL比CCP0L小則,引腳輸出低電平,反之,輸出高電平。因為CL的值是每經過一個時鐘周期加1,加到255時,溢出重新置0。
也就是說CL在0~128之前,CL都一直小于CCP0L,也就是引腳會一直低電平,一旦CL值超過128,引腳會輸出高電平。128位256的一半,所以高電平的時間為整個PWM周期的一半,即占空比為50%。
當我們改變CCP0L的值,就會去改變PWM的占空比,這也就是所說的脈寬調制。
要改變PWM的周期,只能改變CL的取值范圍,但是CL的取值范圍是不可改變的,因為CL是一個8位寄存器。所以只能是改變CL每次加1的速度(原來CL加1用0.1s,現在要改為0.05s)也就是說我們要時鐘源的頻率。這種方法并沒有被PCA模塊所用,PCA模塊所改變PWM頻率的方法為,時鐘源選擇T0的溢出率,或者是選擇外部時鐘晶振源。
上述為個人理解,下圖為手冊中的流程
上一篇:STC12C5A32S2單片機之1602漸入顯示
下一篇:STC12C5A60S2系列單片機PCA時鐘源設置
推薦閱讀
史海拾趣
隨著國內市場的逐漸飽和,臺灣誠陽(BC)公司開始積極尋求海外市場的發展機會。公司通過參加國際展會、與海外企業建立合作關系等方式,不斷拓展國際市場。同時,公司還針對不同地區的市場需求,推出定制化的產品和服務,進一步提升了其在國際市場中的競爭力。
臺灣誠陽(BC)公司深知人才是企業發展的核心。因此,公司一直注重人才的引進和培養。公司建立了完善的人才培養和激勵機制,為員工提供了廣闊的職業發展空間。同時,公司還鼓勵員工參與各種培訓和交流活動,提升他們的專業技能和綜合素質。這種對人才的重視和投入,使得臺灣誠陽擁有一支高素質、專業化的團隊,為公司的持續發展提供了有力保障。
隨著汽車市場的不斷變化和消費者需求的多樣化,奧斯汀汽車也在不斷調整市場策略和產品布局。公司根據市場需求推出了一系列新的車型,并積極拓展海外市場。雖然奧斯汀汽車在歷史長河中經歷了許多波折和挑戰,但其品牌精神和傳統始終得以傳承和發揚。如今,奧斯汀汽車已經成為了英國汽車文化的重要組成部分,其經典車型和品牌形象仍然深受消費者喜愛。
這些故事展示了AUSTIN汽車公司在汽車行業中的發展歷程,從創始與早期成功,到危機與重生,再到技術合作與國際化發展,以及產品創新與多樣化,最終實現了市場調整與品牌傳承。這些事實性的描述,旨在呈現AUSTIN汽車公司在歷史長河中的真實面貌,而不涉及任何褒貶評價。
Econais的超低功耗Wi-Fi模塊在醫療保健領域取得了廣泛的應用。通過連接醫療設備,如監護儀、血糖儀等,這些模塊實現了患者數據的實時傳輸和監控,提高了醫療服務的效率和質量。同時,Econais還針對醫療保健領域的特點,提供了定制化的軟件開發工具包(SDK),幫助客戶快速開發符合行業標準的物聯網應用。
Eska公司注重技術傳承與創新發展。作為奧地利唯一一家仍在為手套制造業培訓學徒和技術工人的企業,Eska堅持手套傳統工藝和技術的秉承。同時,公司也積極引入新技術和新材料,不斷提升產品的性能和質量。這種技術傳承與創新相結合的發展模式,使得Eska在保持傳統優勢的同時,也能不斷適應市場的變化和發展。
高價求一步進馬達單片驅動電路 我有一進口步進馬達驅動電路板,驅動電路完好,但程序控制部分損壞,現高價求編程高手給設計一個單片控制電路與我的馬達驅動電路接口控制。要求能點動,連續轉動。有意者請發郵件至我的郵箱137213568@qq.com索要原驅 ...… 查看全部問答∨ |
|
最近學習power pcb5.0.1,一個簡單的問題哪位大哥能給解決一下!!!! 最近學習power pcb5.0.1,一個簡單的問題哪位大哥能給解決一下!!!! 怎樣直接放置一個焊盤,或者過孔,或者安裝孔在工作區當中,使用什么命令了.… 查看全部問答∨ |
我用多片stm32組成一個485網絡,采用多機通信方式(9bit通信),在收到地址匹配后轉入8bit模式以接收后面的數據,而地址不匹配的那些芯片不產生中斷,在1對1通信的情況下收發均可以運行。 但是現在有一個問題就是我有的數據是 ...… 查看全部問答∨ |