定時器A簡介
定時器A是能進(jìn)行脈沖輸出、外部輸入的脈沖寬度和周期的測量以及對外部事件進(jìn)行計數(shù)的16位定時器。
例程功能
每500毫秒打印個字母
/***********************************************************************************************************************
* Function Name: TMA0_Init
* Description : This function initializes the TMA module.10MS
* Arguments : None
* Return Value : None
***********************************************************************************************************************/
void TMA0_Init(void)
{
CGC->PER1 |= CGC_PER1_TMAEN_Msk; /* enables input clock supply */
TMA->TACR0 &= (uint8_t)~_01_TMA_COUNT_START; //停止計數(shù)
INTC_DisableIRQ(TMA_IRQn);/* disable INTTMA interrupt */
INTC_ClearPendingIRQ(TMA_IRQn);/* clear INTTMA interrupt flag */
TMA->TAMR0 = _10_TMA_COUNT_SOURCE_FCLK8 | _00_TMA_MODE_TIMER; //fCLK/8 定時器模式
TMA->TA0 = 0xEA60U;
}
void BaseTimeSystemInit(uint8_t enable_disable)
{
TMA0_Init();
if(enable_disable)
{
TMA0_Start();
}
else
{
TMA0_Stop();
}
}
void BaseTimeSystemScan()
{
Time_10ms_count++;
if(Time_10ms_count>=TIME_CHECK_BOOT_10MS)
{
UART0_Send('a');
Time_10ms_count = 0 ;
}
}
中斷回調(diào)函數(shù)
/***********************************************************************************************************************
* Function Name: tma0_interrupt
* @brief tima0 interrupt service routine
* @param None
* @return None
***********************************************************************************************************************/
void tma0_interrupt(void)
{
INTC_ClearPendingIRQ(TMA_IRQn); /* clear INTTMA interrupt flag */
if ((TMA->TACR0 & _20_TMA_UNDERFLOW_OCCUR) != 0U)
{
TMA->TACR0 &= (uint8_t)~_20_TMA_UNDERFLOW_OCCUR;
BaseTimeSystemScan();
}
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
定時器
+關(guān)注
關(guān)注
23文章
3246瀏覽量
114715 -
TMA
+關(guān)注
關(guān)注
0文章
7瀏覽量
6803 -
回調(diào)函數(shù)
+關(guān)注
關(guān)注
0文章
87瀏覽量
11554 -
定時中斷
+關(guān)注
關(guān)注
0文章
19瀏覽量
8553
發(fā)布評論請先 登錄
相關(guān)推薦
單片機(jī)MSP430入門-理論⑦--定時器模塊-定時器A②
單片機(jī)MSP430入門-理論⑦--定時器模塊-定時器A②上期大概給大家匯總介紹了,定時器模塊中比較重要并且常用的定時器
發(fā)表于 11-19 17:51
?9次下載
單片機(jī)MSP430入門理論⑧--定時器模塊-定時器A③
單片機(jī)MSP430入門理論⑧--定時器模塊-定時器A③上期大概給大家匯總介紹了,定時器模塊中定時器A
發(fā)表于 11-19 18:51
?8次下載
基于硬件定時器的軟件定時器
概括硬件定時器很精確,軟件定時器無論如何都有延遲,主要用在不需要精確定時的地方,而且軟件定時比較浪費(fèi)單片機(jī)資源。梳理講到定時器,大家多多少少
發(fā)表于 11-25 09:51
?8次下載
單片機(jī)MSP430入門-理論⑥--定時器模塊-定時器A
單片機(jī)MSP430入門-理論⑥--定時器模塊-定時器A上期大概給大家匯總介紹了,在MSP430環(huán)境下的定時器模塊,其中主要又說了下看門狗定時器
發(fā)表于 12-16 16:54
?12次下載
軟件定時器簡介及程序配置
軟件定時器就是允許函數(shù)設(shè)置一定的等待時間,然后執(zhí)行。定時器執(zhí)行的函數(shù)被稱為定時器的回調(diào)函數(shù)。定時器從啟動到執(zhí)行回調(diào)函數(shù)之間的時間稱為定時器
什么是軟件定時器?軟件定時器的實現(xiàn)原理
軟件定時器是用程序模擬出來的定時器,可以由一個硬件定時器模擬出成千上萬個軟件定時器,這樣程序在需要使用較多定時器的時候就不會受限于硬件資源的
評論