S3C2440中有5個16位定時器,timer0,timer1,timer2,timer3和timer4。其中,只有timer4是一個沒有輸出引腳的內部定時器。所以,只有定時器0,1,2,3有脈寬調制功能(PWM)。定時器0有一個用于大電流設備的死區生成器。(以下,以定時器0為例)
S3C2440的PWM輸出,主要是利用比較寄存器TCMPB0(0x51000010)。
在定時器使能時,定時器計數緩存寄存器(TCNTBn)得到一個被裝載到遞減計數器中的初始值。定時器比較緩存寄存器(TCMPBn)有一個被裝載比較器中用來和遞減計數器得值作比較的初始值。
每個定時器有一個自己的由定時器時鐘驅動的16位遞減計數器。當遞減計數器為零時,定時器中斷請求生成通知CPU定時器操作已經完成。當定時器計數器達到0,相應的TCNTBn的值也知道裝載到遞減計數器中以繼續下一個操作(自動裝載)。但是,如果定時器停止了,例如在定時器運行模式下通過對TCONn的定時器使能位清零,則TCNTBn的值不會裝載到計數器中。
TCMPBn的值用于脈寬調制。當遞減計數器的值和定時器控制邏輯中的比較寄存器的值匹配時,定時器控制邏輯改變輸出電平。因此,比較寄存器決定了PWM輸出的開啟時間。
有了以上知識,可以知道
在初始化定時器時,主要要設定以下幾個寄存器(以定時器0為例):
定時器輸出時鐘頻率=PCLK/(prescaler value + 1)/(divider value)
TCFG0(0x51000000),如:TCFG0=99;//prescaler value="99"
TCFG1(0x51000004),如: TCFG1=0x03;//divider value="1/16"
這樣,當PCLK=400M時。定時器輸出頻率為6.25M
下面就要給定時器裝初值了,
TCNTB0(0x5100000c),如,TCNTB0=62500;//裝入初值 1s中斷一次
TCMPB0(0x51000010),如,TCMPB0=rTCNTB0>>1;//50%
如果不使用PWM的話,可以不設TCMPB0,或將其設為0。
接著就可以啟動定時器了,不過第一次必須手動裝載TCON=1<<1;
裝載后,改為自動裝載,并啟動定時器TCON=0x09;
其中TCON(0x51000008)
為了驅動蜂鳴器,還要初始化一下I/O口。
我用的板子是友善的,蜂鳴器連在了GPB0上。
通過改變GPBCON(0x56000010)的最后兩位,使能PWM
void GPIO_init(void)
{
rGPBCON &= ~3;
rGPBCON |= 2;
}
上一篇:友善之臂Mini2440NORflash bootloader燒寫詳述---親測可用
下一篇:友善之臂mini2440初入門學習的一點歷程
推薦閱讀
史海拾趣
ABI Electronics公司的起點可以追溯到其對電路板測試技術的深入研究。在創立初期,ABI便以開發出高精度、高效率的電路板故障檢測儀為目標。通過對電路板測試技術的不斷鉆研和創新,ABI成功推出了一系列性能卓越的測試設備,這些設備不僅提高了電路板測試的準確性和效率,也極大地降低了測試成本,贏得了市場的廣泛認可。
在成功占領國內市場后,ECLIPSE公司開始積極拓展國際市場。通過與國際知名企業和機構的合作,Eclipse得以在全球范圍內推廣和應用。同時,公司還積極探索多元化發展道路,將Eclipse的技術和模式應用于其他領域和行業。這些努力不僅為ECLIPSE公司帶來了更多的商業機會和市場份額,也為其在電子行業的長遠發展奠定了堅實的基礎。
以上五個故事是基于Eclipse項目的發展歷史和電子行業的一般趨勢而虛構的。雖然這些故事并非真實發生在ECLIPSE公司身上,但它們所展現的發展路徑和面臨的挑戰對于電子行業的公司來說具有一定的參考意義。
在2000年代初,ECLIPSE公司是一家專注于企業級軟件開發的公司。公司內部的一個小型團隊開發了一個名為“Eclipse”的集成開發環境(IDE),用于提高內部項目的開發效率。隨著Eclipse的內部使用越來越廣泛,公司高層意識到其巨大的潛力,決定將Eclipse開源,并成立專門的Eclipse部門來管理和推廣這一項目。通過開放源代碼和社區合作,Eclipse迅速吸引了全球開發者的關注,并逐漸成長為開源開發領域的領軍者。
背景:Fritz Hartmann Ger?tebau KG成立于1961年,起初專注于電子元器件的研發與生產。隨著技術的不斷積累和市場的逐步拓展,公司業務逐漸壯大,并更名為Hartmann Codier GmbH。這一時期,公司憑借對開關技術的深刻理解,逐步在行業內建立了良好的聲譽。
發展:在初創階段,Hartmann Codier GmbH致力于提升產品質量和技術水平,通過不斷的技術創新和產品優化,逐漸在旋轉編碼開關和微動開關領域占據了一席之地。同時,公司也積極拓展國內外市場,為后續的快速發展奠定了堅實的基礎。
在一個窗體的Button貼上圖片,或者設置背景圖片 請不要跟我說CBitmapButton, 然后用LoadBitmaps() 這個類在WINDOWS CE上是沒有的 那要用什么方法, 好像BitBlt可以 但是不知道怎么用 … 查看全部問答∨ |
在電驢上下了[風河VxWorks].WINDRIVER.TORNADO.V2.2.FOR.PENTIUM.CD1 [風河VxWorks].WINDRIVER.TORNADO.V2.2.FOR.PENTIUM.CD2兩個文件,先安裝CD1,但到了選擇安裝目錄的下一步后,就死掉了, ...… 查看全部問答∨ |
LPC1102 規格書UM10249 Page:128 說到: 當MCU計算Sector0中地址0-8的CHECKSUM為0時,程序進入用戶代碼區。否則進入ISP區。 但我用Keil生成的代碼,0-8的CHECKSUM不為零。 是不是MDK不支持LPC1102的編譯?請高手解答。如果是該用什么軟 ...… 查看全部問答∨ |
|
在網上淘的仿真學習板,十天學會單片機的protues仿真電路板,在protues上畫的仿真電路板,可以搭配郭天祥十天學會單片機教程使用,很不錯?!? 查看全部問答∨ |
以前不懂開關電源怎么調試,以為把變壓器饒好一定的砸數就完事,可是做出來的電源總是不行,要不就是帶負載不行,或者是啟動不了,偶爾燒東西 然后才知道,TOP算是反激式的需要調整初級電感量的,原來如此! 這個是用公司里的EE2 ...… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 預約有禮:以光代電,硅光芯片了解一下~ 走進工程師網絡學堂直播,贏好禮
- 第三代半導體如何測試 進階技能備好了!收集能量抽好禮!
- 電源情報站 MPS小程序干貨推薦,下載有好禮!3月活動開始啦~
- 有獎電源小課堂 | PI 1250V高壓氮化鎵芯片
- ADI有獎下載活動之20:基于NDIR和PID的ADI氣體探測器解決方案和新產品
- Digi-key干貨視頻教程來襲,意見領袖講解疑難設計問題,帶你突破成長瓶頸~
- 免費試用Atmel MCU開發板,搶“鮮”體驗優越性能,更有大獎等你拿!
- 看專題答題贏好禮!PI 穩定可靠的TOPSwitch-JX開關電源IC
- 想要更直觀的了解5G?觀看羅德與施瓦茨主題演講,填問卷贏好禮!