定時器A簡介
定時器A是能進行脈沖輸出、外部輸入的脈沖寬度和周期的測量以及對外部事件進行計數的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; //停止計數
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 ;
}
}
中斷回調函數
/***********************************************************************************************************************
* 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();
}
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
定時器
+關注
關注
23文章
3255瀏覽量
115169 -
TMA
+關注
關注
0文章
7瀏覽量
6812 -
回調函數
+關注
關注
0文章
87瀏覽量
11607 -
定時中斷
+關注
關注
0文章
19瀏覽量
8597
發布評論請先 登錄
相關推薦
單片機MSP430入門-理論⑦--定時器模塊-定時器A②
單片機MSP430入門-理論⑦--定時器模塊-定時器A②上期大概給大家匯總介紹了,定時器模塊中比較重要并且常用的定時器
發表于 11-19 17:51
?9次下載
單片機MSP430入門理論⑧--定時器模塊-定時器A③
單片機MSP430入門理論⑧--定時器模塊-定時器A③上期大概給大家匯總介紹了,定時器模塊中定時器A
發表于 11-19 18:51
?8次下載
基于硬件定時器的軟件定時器
概括硬件定時器很精確,軟件定時器無論如何都有延遲,主要用在不需要精確定時的地方,而且軟件定時比較浪費單片機資源。梳理講到定時器,大家多多少少
發表于 11-25 09:51
?8次下載
單片機MSP430入門-理論⑥--定時器模塊-定時器A
單片機MSP430入門-理論⑥--定時器模塊-定時器A上期大概給大家匯總介紹了,在MSP430環境下的定時器模塊,其中主要又說了下看門狗定時器
發表于 12-16 16:54
?12次下載
什么是軟件定時器?軟件定時器的實現原理
軟件定時器是用程序模擬出來的定時器,可以由一個硬件定時器模擬出成千上萬個軟件定時器,這樣程序在需要使用較多定時器的時候就不會受限于硬件資源的
評論