先給出框圖
隨便從百度文庫上找了個定時器程序,分析下。
1 #include 2 void main (void) 3 { 4 WDTCTL = WDTPW + WDTHOLD; 5 6 7 TA1CTL|=TASSEL_2+TACLR+MC_3+ID_3;//采取內部時鐘源1.04M,八分頻,增減計數模式 8 TA1CCTL0=CCIE;//啟用定時器中斷 9 TA1CCR0=65535;//計數1S 10 P1DIR|=BIT0; 11 _EINT(); 12 //LPM4; 13 while(1); 14 } 15 #pragma vector=TIMER1_A0_VECTOR 16 __interrupt void ta10_isr(void) 17 { 18 P1OUT^=BIT0; 19 } View Code 測試通過,這個程序可以是LED1按2秒的頻率閃爍(1秒亮,一秒暗)下面分析下: 第1句:WDTCTL = WDTPW + WDTHOLD; 這一句有點不太懂了,明明是定時器,怎么把看門狗定時器給停止了呢? 第2句:TA1CTL |= TASSEL_2+TACLR+MC_3+ID_3; 后面的解釋:采取內部時鐘源1.04M,八分頻,增減計數模式。 先分析程序句,去頭文件里找各自的定義: 1 SFR_16BIT(TA1CTL); /* Timer1_A3 Control */ 1 #define MC_0 (0*0x10u) /* Timer A mode control: 0 - Stop */ 2 #define MC_1 (1*0x10u) /* Timer A mode control: 1 - Up to CCR0 */ 3 #define MC_2 (2*0x10u) /* Timer A mode control: 2 - Continous up */ 4 #define MC_3 (3*0x10u) /* Timer A mode control: 3 - Up/Down */ 5 #define ID_0 (0*0x40u) /* Timer A input divider: 0 - /1 */ 6 #define ID_1 (1*0x40u) /* Timer A input divider: 1 - /2 */ 7 #define ID_2 (2*0x40u) /* Timer A input divider: 2 - /4 */ 8 #define ID_3 (3*0x40u) /* Timer A input divider: 3 - /8 */ 9 #define TASSEL_0 (0*0x100u) /* Timer A clock source select: 0 - TACLK */ 10 #define TASSEL_1 (1*0x100u) /* Timer A clock source select: 1 - ACLK */ 11 #define TASSEL_2 (2*0x100u) /* Timer A clock source select: 2 - SMCLK */ 12 #define TASSEL_3 (3*0x100u) /* Timer A clock source select: 3 - INCLK */ 第1句話表示了在特殊功能寄存器里找16個位置給Timer1_A3 Control;后面12句話定義了各個宏,實際上就是用前面的標示符表示后面的數,沒別的意思。 從數據手冊上截取: 數據手冊對TACTL的結構有說明: 后面對各個有詳細的說明,這里只說明遇到的: (1)TASSELx: (Timer_A Source select,A計時器的激勵源選擇) TASSEL_0: 00 代表著 TACLK,外部時鐘單元 TASSEL_1: 01 代表著 ACLK ,Auxiliary clock ,輔助時鐘單元,可做2、4或者8分頻。 TASSEL_2: 10 代表著 SMCLK,Sub-main clock,子時鐘單元,也可做2、4或者8分頻。 TASSEL_3: 11 代表著 INCLK ,外部時鐘單元 (2)IDx: 表示分頻的個數 ID_0 ID_1 ID_2 ID_3 1分頻,也就是不分 2分頻 4分頻 8分頻 (3)MCx表示模式 百度文庫找個圖: 嘿嘿,這個圖就是整個的定時器結構圖和計數模式了,雖然有點復雜,但對于老爺們來說,這點事不算啥。 (4)TACLR:Timer A clear 第3句:TA1CCTL0=CCIE; 后面給出的解釋是:啟用定時器中斷。 從頭文件里獲取 SFR_16BIT(TA1CCTL0); #define CCIE (0x0010) /* Capture/compare interrupt enable */ 如果TA1CCTL0=CCIE,實際上在置CCIE位為1的同時,把其他位置0, 第4句:P1DIR|=BIT0; BIT0在頭文件里這么定義的,并不是0的意思: 1 #define BIT0 (0x0001) 2 #define BIT1 (0x0002) 3 #define BIT2 (0x0004) 4 #define BIT3 (0x0008) 所以這句話的意思是把P1.0 的方向設為輸出。 第5句:_EINT(); enable interuption 打開全局中斷。 相反的,_DINT(); disable interruption關閉全局中斷。 第6句:#pragma vector=TIMER1_A0_VECTOR __interrupt void ta10_isr(void) 用關鍵字來__interrupt來定義一個中斷函數。注意前面的下劃線是兩個,一個會出錯的。 用#pragma vector來提供中斷函數的入口地址。
上一篇:msp430學習筆記之時鐘
下一篇:MSP430定時器介紹
推薦閱讀
史海拾趣
隨著全球經濟的日益一體化,國際合作成為許多公司拓展市場的重要途徑。假設ATC在某次國際技術交流會上與一家歐洲知名電子企業達成了合作協議,雙方共同開發了一款新型陶瓷電容器。這款電容器不僅性能卓越,而且成本相對較低,因此在全球市場上受到了廣泛的歡迎。通過這次合作,ATC不僅提升了自身的技術實力,也進一步拓展了海外市場。
隨著技術實力的不斷提升和產品線的日益豐富,申風(everanalog)公司開始積極拓展市場。公司憑借優質的產品和服務,逐漸在國內市場上樹立了良好的品牌形象。同時,公司也積極開展國際合作,與國際知名企業建立了戰略合作關系,共同推動集成電路產業的發展。這些合作不僅為公司帶來了更多的商業機會,也提升了公司在國際市場上的競爭力。
面對日益嚴峻的環境問題,B.B. Battery公司積極響應國家綠色發展的號召,致力于推動綠色生產。他們引進環保型生產設備和技術,減少生產過程中的污染物排放。同時,公司還研發出多款環保型電池產品,為客戶提供更加綠色、高效的能源解決方案。這些舉措不僅提升了公司的社會責任感,也為公司的可持續發展奠定了堅實基礎。
隨著市場競爭的加劇和技術的不斷發展,中電熊貓不斷調整市場布局和戰略方向。公司堅持開放聯合的戰略思路,善于搭建平臺、取長補短、實現合作共贏。同時,中電熊貓還積極關注國內外市場動態和技術趨勢,不斷調整和優化產品結構和服務模式。通過這些努力,中電熊貓在保持市場領先地位的同時,也為行業的可持續發展做出了積極貢獻。
技術創新是中電熊貓持續發展的關鍵。公司不斷深化技術改革,加大研發投入,推動產業升級。例如,在液晶面板生產線上,中電熊貓采用了世界一流的技術和設備,不僅提高了屏幕分辨率和良品率,還降低了生產成本。此外,中電熊貓還積極參與國家重大科研項目和行業標準制定工作,為行業發展做出了積極貢獻。
While Bluetooth is an excellent technology for short-range data communication, shortcomings in its transport layer protocol can make the initial set-up of links between devices cumbersome for the user. Simply associating a Bluetoo ...… 查看全部問答∨ |
請問用AVR Studio4怎么進行C語言的仿真啊?我用Winavr寫好C語言程序編譯成功生成后綴為cof的文件,再用AVR Studio4打開后綴為cof的文件,進行調試時卻出現的是對匯編程序的調試,而我學習用的這本書上卻是對C語言程序進行調試,還可以用step into直接在W ...… 查看全部問答∨ |
我國汽車產業高速發展,給蓄電池行業帶來空前的機遇,過去10年蓄電池總產量平均增幅高于德、美等發達國家。目前,我國蓄電池消費主要集中在汽車市場和摩托車市場,兩者占據大部分比重,消費份額為74%;電動自行車市場占8%;出口占7%,其他用量占11%。 ...… 查看全部問答∨ |
1 利用4位二進制加法器和4位寄存器,實現4位累加器的設計。要求設計的累加器有異步清零控制端和累加使能控制端(高電平累加允許 低電平輸出數據保持) 2 利用4位累加器和前面設計的計數器 實現兩個二位二進制數的乘法操作。初始時,累加寄存器清零 ...… 查看全部問答∨ |
單片機和上位機通訊。 通過gprs方式和上位機通訊的方式已經做出來了。 現在想實現通過無線網卡模塊,再通過無線路由器和上位機進行通信。 1.這種方式可行否? 2.單片機和無線網卡模塊的開發需要嵌入式操作系統不?這塊難度大部? … 查看全部問答∨ |
|
時鐘設置 一、簡介 本程序實驗使用更改寄存器,設置系統時鐘變化。軟件延時因系統時鐘而改變。進一步促使蜂鳴時間間隔變化。 二、時鐘原理 1、時鐘源 1)、外部振蕩器、0—50MHZ 2)、主振蕩器、 ...… 查看全部問答∨ |
ISE中有“Wait for DLL Lock”這個選項,目的是設置FPGA是否等待DCM的“lock”信號。 默認設置是nowait。 我現在想設置成為等待模式,但是里面的設置是0、1、2、3、4、5、6、這些數字代表的是什么設置啊? 還有,大家用DCM的時候,是 ...… 查看全部問答∨ |
MSP430 技術資料 - MSP430常見問題(FAQ): http://www.deyisupport.com/question_answer/f/55/t/232.aspx - SimpliciTI API中文翻譯及英文原版: http://www.deyisupport.com/question_answer/f/55/t/1093.aspx - Eagle CAD的器件原理圖 ...… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 高通攜手中國“汽車朋友圈”亮相2025上海車展: 加速駕駛輔助普惠,推動艙駕創新升級
- 工業市場正在快速回暖,德州儀器如何重塑電力電子市場?
- 特斯拉:美國交付的Model Y/3電池包已實現100%美國生產
- 地平線與博世深化合作,攜手為多家車企提供輔助駕駛產品
- 強化中國市場戰略布局,德州儀器正靈活應對全球關稅挑戰
- Molex莫仕通過本地合作和創新加強支持中國汽車行業
- 貿澤開售Texas Instruments適用于高分辨率AR HUD的 全新DLP4620S-Q1 0.46"汽車數字微鏡器件
- ROHM推出高功率密度的新型SiC模塊,將實現車載充電器小型化!
- 用上車規級UFS 4.0,讓出行變得高效且可靠
- 車載測試技術解析:聚焦高帶寬、多通道同步采集與協議分析