PWM定時器
PWN:脈沖寬度調制
每個定時器都有一個專用的由定時器時鐘驅動的16位遞減計數器。當遞減計數器的計數值達到0的時候,就會產生定時中斷請求來通知CPU定時器操作完成。當定時器遞減計數器達到0的時候,相應的TCNTBn的值會自動重載到遞減計數器中以繼續下次操作。
但是,如果定時器停止了,比如在定時器運行時清除TCON中的定時器使能位,TCNTBn的值不會被重載到遞減計數器中
TCMPBn的值用于脈沖寬度調制(PWM)。當定時器的遞減計數器的值和比較寄存器的值相匹配的時候,定時器控制邏輯將改變輸出電平。因此,比較寄存器決定了PWM輸出的開關時間。
定時呂控制寄存器(TCON)
定時器控制寄存器主要用于自動重載、定時器自動更新、定時器啟停、輸出翻轉控制等
定時器n計數緩沖寄存器(TCNTBn)
這個寄存器用于PWM定時器的時間計數
定時器n比較緩沖寄存器(TCMPBn)
這個寄存器用于PWM波形輸出占空比的設置
看門狗(WatchDog)定時器和PWM定時器功能目的不一樣。
特點
需要不停地接收信號(一些外置看門狗芯片)或重新設置計數值(如S3C2410X的看門狗控制器),保持計數值不為0.一旦一段時間接收不到信號,或計數值到0,看門狗定時器將發出復位信號復位系統或產生中斷。
作用
看門狗定時器的作用是微控制器受到干擾進入錯誤狀態后,使系統在一定時間間隔內復位。因此看門狗定時器是保證系統長期、可靠和穩定運行的有效措施。
一旦看門狗定時器被允許,看門狗定時器數據寄存器(WTDAT)的值不能被自動地裝載到看門狗計數器(WTCNT)中。因此,看門狗定時器啟動前要將一個初始值寫入看門狗計數器(WTCNT)中。
程序設計流程
由于看門狗定時器是對系統的復位或者中斷的操作,所以不需要外圍的硬件電路。要實現看門狗定時器的功能,只需要對看門狗定時器的寄存器組進行操作,即對看門狗定時器的控制寄存器(WTCNT)進行操作。
1)設置看門狗定時器中斷操作包括全局中斷和看門狗中斷的全能及看門狗中斷向量的定義,如果只是進行復位操作,這一步可以不用設置
2)對看門狗控制寄存器(WTCON)的設置,包括設置預分頻比例因子、分頻器的分頻值、中斷全能和復位全能等
3)對看門狗數據寄存器(WTDAT)和看門狗計數寄存器(WTCNT)的設置
4)啟動看門狗定時器
看門狗例子
1 #include "2410lib.h"
2
3 void watchdog_test(void);
4
5 int main()
6
7 {
8
9 sys_init();
10
11 uart_printf("n Embest Arm S3CEB2410 Evaluation Board!n");
12
13 watchdog_test();
14
15 while(1);
16
17 }
18
19 void __irq watchdog_int(void) ;//__attribute__((interrupt ("IRQ")));
20
21 INT8T f_ucSecondNo;
22
23 void watchdog_test(void)
24
25 { f_ucSecondNo = 0;
26
27 uart_printf("n WatchDog Timer Test Examplen");
28
29 uart_printf(" 10 seconds:n");
30
31 rSRCPND|=0x0200;
32
33 rINTPND|=0x200;
34
35 //ClearPending(BIT_WDT); // clear interrupt pending bit
36
37 pISR_WDT = (unsigned)watchdog_int; // Initialize WDT interrupt handler entry
38
39 rWTCON = ((PCLK/1000000-1)<<8)|(3<<3)|(1<<2); // 1M,1/128, enable interrupt
40
41 rWTDAT = 7812; // 1M/128=7812
42
43 rWTCNT = 7812;
44
45 rWTCON = rWTCON & ~1;
46
47 //rWTCON = rWTCON | 1; // enable restart
48
49 rWTCON |=(1<<5); // start watchdog timer
50
51 rINTMOD &= ~(BIT_WDT);
52
53 rINTMSK &= ~(BIT_WDT);
54
55 while((f_ucSecondNo)<11);
56
57 rINTMSK |= BIT_WDT; // mask watchdog timer interrupt
58
59 uart_printf(" end.n");
60
61 }
62
63
64
65 void __irq watchdog_int(void)
66
67 {
68
69 ClearPending(BIT_WDT);
70
71 f_ucSecondNo++;
72
73 if(f_ucSecondNo<11)
74
75 uart_printf(" %3ds ",f_ucSecondNo);
76
77 else
78
79 uart_printf("n O.K.");
80
81 }
上一篇:【ARM】AD轉換器
下一篇:【ARM】串行通信
推薦閱讀
史海拾趣
隨著全球化趨勢的加速,大雅智能積極實施國際化戰略,拓展海外市場。通過與國外知名企業的合作與交流,大雅智能引進先進技術和管理經驗,不斷提升自身的核心競爭力。同時,大雅智能還積極參加國際展覽和論壇活動,展示其創新成果和產品實力。這些努力讓大雅智能在國際舞臺上嶄露頭角,為全球消費者提供更多優質的電子產品。
博流公司的卓越表現引起了業界的廣泛關注。2019年,公司榮獲了Red Herring Top 100 Asia大獎,這是對其在AIoT/邊緣計算SOC芯片研發領域的快速成長和技術實力的高度認可。此外,博流還獲得了多項國內外專利和榮譽,證明了公司在行業內的領先地位。
作為一家有社會責任感的企業,睿赫公司始終關注環境保護和可持續發展。公司在產品研發和生產過程中,積極采用環保材料和綠色生產工藝,減少對環境的影響。同時,公司還積極參與公益事業,為社會做出了積極的貢獻。
在可持續發展方面,睿赫公司致力于推動電子行業的綠色化和智能化發展。公司不斷加強技術研發和創新,推出了一系列符合環保要求和高性能要求的產品,為電子行業的可持續發展做出了積極的貢獻。
C-MAX Time Solutions公司自創立以來,一直致力于電子時間同步技術的研發。在某一時期,公司推出了一款革命性的高精度時鐘同步芯片,這款芯片憑借其卓越的穩定性和低延遲特性,迅速在通信、金融和交通等領域獲得了廣泛應用。這一技術創新不僅提升了C-MAX的市場競爭力,也推動了整個電子行業時間同步技術的發展。
在這個故事中,我們將看到ERP Power如何與HANA技術相結合,為一家電子企業提供了強大的數據支持和分析能力。通過實施基于HANA的ERP Power系統,該企業成功實現了數字化轉型,提高了生產效率和產品質量。
問題描述: 1.一個流式驅動,工作流程是硬件觸發一個中斷,系統采集到數據信息后通過xxx_READ將采集到的數據發給應用層; 2.驅動通過一個線程函數來獲取GPIO的中斷信號,并讀取值從打印信息打印出。 (這里的處理正常,有多少中斷都接受到,并且 ...… 查看全部問答∨ |
|
我在微軟的網站下載的示例程序Pocket Access Demo,模擬器下運行沒有任何問題,但是導到pda上總是提示未處理的“System.Runtime.InteropServices.ExternalException”類型的異常出現在 InTheHand.AdoceNet.dll 中。 其他信息: -2147024809 而且我 ...… 查看全部問答∨ |
用SAMSUNG的2440A做導航終端,400M主頻,CPU發熱嚴重,板子和機殼都很燙熱.各位有什么好辦法可以使CPU降溫?看到別人的導航儀亦熱,略感欣慰,非我獨有啊!… 查看全部問答∨ |
應該說BootPart算是微軟提供的一個用于分區的模塊,可以在EBOOT中使用。不過說實話,我很少使用它,知道有些廠商的BSP里面支持這個功能,而且也算是EBOOT的一部分,所以還是介紹一下。 EBOOT中的BootPart架構 在EBOOT中,BLCOMMON處于最上層, ...… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 有獎直播 | 德州儀器基于 Arm 的 AM62 處理器簡介
- 最后一周:免費獲取Pasternack《RF產品選型指南》2018 印刷版!
- 有獎直播|如何借助Mentor Xpedition AMS對汽車CAN總線進行仿真優化分析?
- 如何用3個關鍵步驟,來確保下一代設計安全性,深入解讀嵌入式設備DeepCover加密控制器,看視頻答題贏好禮!
- 好書共讀:《硬件設計指南:從器件認知到手機基帶設計》
- 【預約有禮】全球測量圈大咖直播:驗證5G核心網,確保最佳性能
- 中秋“國宴“ :拍攝板卡上的國產元器件,抽開心小禮品
- Keysight教你如何提高測試精度,答對問題還有禮品相送,速速參與!
- TI 培訓推薦有禮活動
- 【分享成長,10月有獎】EEWORLD優秀主題/回復第15期活動開始啦!!!