定時器1為高級定時器,主要特性如下:
定時器1的寄存器比較多,
如果單純的只是用定時功能的話,用不到這么多的寄存器。定時功能需要設置的寄存器主要有自動重裝載寄存器ARR、預分頻寄存器PSCR、控制寄存器CR、狀態寄存器SR、中斷使能寄存器IER。
初始化代碼如下:
void Timer1_Init( void )
{
TIM1_ARRH = ( unsigned char )( 1000 >> 8 ); //定時1ms
TIM1_ARRL = ( unsigned char )( 1000 );
TIM1_PSCRH = ( unsigned char )( 0x0F >> 8 ); // 16M / (1+15) =1M
TIM1_PSCRL = ( unsigned char )( 0x0F );
TIM1_RCR = 0x00; //重復計數器值
TIM1_SR1 = ( ~0x01 ); //清除更新中斷標志
TIM1_CR1 |= 0x01; //使能計數器
TIM1_IER |= 0x01; //更新中斷使能
}
首先通過自動重裝載寄存器設置自動重裝載值,設置ARR值為1000,也就是說計數器從0開始計數,計數值到達1000后,產生一次中斷,然后繼續從0開始計數,當計數器值1000后不需要手動設置寄存器的值,因為TIM1的計數值是自動裝載的。
下來設置分頻數。
時鐘默認選擇的是內部16M晶振,此處設置分頻值為15,所以TIM1的時鐘頻率就為 16M /(1+15)=1MHz。
接下來首先清除中斷標志位,再使能計數器,開啟中斷功能,定時器1的初始化就結束了。下來編寫中斷服務函數。
#pragma vector = 13 // IAR中的中斷號,要在STVD中的中斷號上加2
__interrupt void Timer1_Handle( void ) //1ms 定時中斷
{
TIM1_SR1 = ( ~0x01 ); //清除更新中斷標志
time_cnt++;
if( time_cnt > 999 )
{
time_cnt = 0;
LED = !LED;
}
}
中斷服務函數比較簡單,進入中斷后首先清除中斷標志位,然后再中斷中統計中斷次數,中斷設置的是1ms中斷一次,當中斷次數超過999次時,也就是1000ms,翻轉一次LED燈的電平。
這樣定時器1實現的功能就是1s中LED燈翻轉一次,定時器1的定時功能就實現了。
上一篇:STM8學習筆記---定時器 TIM4功能實現
下一篇:STM8學習筆記---新建IAR工程文件
推薦閱讀
史海拾趣
1995年,Philips Semiconductors收購了Mikron Graz,這一事件標志著EM Microelectronic-Marin與Philips在半導體領域的深度合作。此后,兩家公司共同推動了RFID(射頻識別)技術的發展,使其逐漸成為電子行業中不可或缺的一部分。EM Microelectronic-Marin憑借其在低功耗技術方面的優勢,為RFID技術提供了強有力的支持。
在發展的過程中,Ferroperm公司不斷進行技術創新和產品研發,推動產品的多樣化發展。他們成功開發了一系列具有高性能和獨特功能的電磁材料,如高性能鐵氧體、NdFeB永磁體等。這些產品不僅滿足了客戶對電磁材料性能的高要求,還推動了相關行業的發展。同時,Ferroperm還不斷拓展產品線,推出了變壓器、電感器、濾波器等一系列電子產品,進一步鞏固了其在電磁材料領域的領先地位。
Dino-Lite公司自創立之初,就專注于數字顯微鏡技術的研發與創新。公司研發團隊不斷探索新技術,將傳統顯微鏡與現代數字技術相結合,成功推出了一系列高性能、易用性強的Dino-Lite數字顯微鏡產品。這些產品以其高清畫質、便捷操作和廣泛適用性,迅速贏得了市場的認可。
隨著技術的不斷進步,Dino-Lite公司不斷推出新產品,滿足了不同行業對數字顯微鏡的需求。例如,公司針對醫療領域推出了高分辨率、低光環境下的專業顯微鏡,為醫療診斷和治療提供了有力支持;同時,針對教育行業推出了性價比高的入門級產品,讓更多的學生和老師能夠接觸和使用到先進的顯微鏡技術。
Dino-Lite公司在發展過程中,始終注重市場拓展和合作伙伴關系的建立。公司與多家知名企業建立了長期穩定的合作關系,共同開拓市場、分享資源。通過與合作伙伴的緊密合作,Dino-Lite公司的產品得以快速進入各個行業領域,并獲得了良好的口碑和市場份額。
此外,Dino-Lite公司還積極參與國際展覽和交流活動,展示公司的最新技術和產品。這些活動不僅提高了公司的知名度,也為公司帶來了更多的商業機會和合作伙伴。
Dino-Lite公司在發展過程中,始終注重市場拓展和合作伙伴關系的建立。公司與多家知名企業建立了長期穩定的合作關系,共同開拓市場、分享資源。通過與合作伙伴的緊密合作,Dino-Lite公司的產品得以快速進入各個行業領域,并獲得了良好的口碑和市場份額。
此外,Dino-Lite公司還積極參與國際展覽和交流活動,展示公司的最新技術和產品。這些活動不僅提高了公司的知名度,也為公司帶來了更多的商業機會和合作伙伴。
為了進一步提升公司的競爭力,全智景公司開始實施全球化戰略。公司積極拓展海外市場,與多個國家和地區的企業建立了合作關系。通過引進國外先進的技術和管理經驗,全智景公司不斷提升自身的綜合實力。同時,公司還積極參與國際展覽和交流活動,提升了品牌知名度和影響力。這一全球化戰略為全智景公司帶來了更廣闊的發展空間和市場機遇。
我使用的工程是 sdk 自己帶的 handlesip 程序, 安裝了CHS sdk. 軟件盤可以被調出來, 可是拼音按鈕不可用(左下腳的拼字點擊沒有任何反映), 哪位大俠幫幫忙是什么原因! 跪謝了. 使用SHSipPreference(hWnd, SIP_UP);啟動的軟鍵盤.… 查看全部問答∨ |
我現在用CC1100接收模塊開發一個項目,用的單片機是MSP430F2274,但相應的電源板只能提供3mA的電流,我現在想用電磁波解決這個問題,想問哪個高手能給我些代碼,非常感謝!… 查看全部問答∨ |
CPU :AMCC-440EPx 操作系統 :VxWorks 6.2 開發環境 :WorkBench 2.4 當使用浮點運行時,結果不正確,在Config.h配置了以下內容: #undef INCLUDE_SW_FP #define INCLUDE_HW_FP #define INCLUDE_FLOATING_POINT AMCC-440EPx支持硬件浮點運 ...… 查看全部問答∨ |
|
本人在用DSP做電機控制時,使用PID算法進行位置環,速度環雙閉環控制,出現如下問題: 1、單獨使用PID位置環算法無問題,能夠精確控制電機到指定位置 2、單獨使用PID速度環算法無問題,能夠精確控制電機到指定速度 3、但是當我將PID位置環和速度 ...… 查看全部問答∨ |
interrupt[ADC_VECTOR]void ADC12(void)出錯 #include "msp430x14x.h" void Init(void); interrupt [ADC_VECTOR]void ADC12(void); unsigned int Result;unsigned int Table[4][10] = { {0x040,0x0BC,0x138,0x1B4,0x230,0x2AC,0x328,0x3A4,0x420,0x49C}, &nbs ...… 查看全部問答∨ |
replyreload += \',\' + 1476714;破解為別人的,本人只是低調轉發,不對任何錯誤負責 file:///C:\\DOCUME~1\\ADMINI~1\\LOCALS~1\\Temp\\TempPic\\MCUYE7)_}E]ASP$Z2]D2OL4.tmp 下載后感覺有用就幫頂下!! Timson,如果您要查看本帖隱藏內容請回 ...… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 英特爾被曝向臺積電下達 2nm 晶圓代工訂單,成為該制程首批客戶
- Akamai 研究發現:在亞太地區及日本,AI 驅動的應用程序遭受了 510 億次 Web 攻擊,年同比增長達 73%
- 汽車顯示屏——第1部分:TFT LCD、OLED和micro-LED顯示屏基本原理
- 英特爾首秀上海車展:以“芯”賦能,攜手合作伙伴推動全車智能化
- 中國首個高速L3商用解決方案!華為新一代ADS 4正式發布
- 增強自主移動機器人的安全性
- Cadence 推出業界首款 12800MT/s DDR5 MRDIMM Gen2 內存 IP 系統解決方案
- 消息稱英特爾本周內公布 20%+ 大裁員計劃
- 盤點慕尼黑電子展上那些火熱的機器人技術和產品
- AI算力狂飆下的能源困局,ST如何突圍?