找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2179|回復: 2
打印 上一主題 下一主題
收起左側(cè)

關(guān)于msp430定時器中斷的一些理解

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1088216 發(fā)表于 2023-7-22 20:03 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
TIMER_A_STOP_MODETIMER_A_UP_MODE            //增計數(shù)模式    計數(shù)到CCR0,置0重計
TIMER_A_CONTINUOUS_MODE       //連續(xù)計數(shù)模式     連續(xù)計數(shù),計數(shù)到0FFFFh之后從0開始重新計數(shù),無法更改頻率
TIMER_A_UPDOWN_MODE        //增減計數(shù)模式   0-ccr-0定時器中斷分為TAIE中斷與CCIFG0中斷:TAIE中斷是計數(shù)值到達CCR0(或者CCR1)時會產(chǎn)生中斷,CCIFG0中斷是定時器溢出時產(chǎn)生中斷(在歸0的那瞬間)。其分別對應的中斷服務函數(shù)為:
#pragma vector=TIMER0_A0_VECTOR__interruptvoid TIMER0_A0_ISR (void)
{    GPIO_toggleOutputOnPin(GPIO_PORT_P4, GPIO_PIN1);}#pragma vector=TIMER0_A1_VECTOR__interruptvoid TIMER0_A1_ISR (void){    switch(TA0IV)    {        case TA0IV_NONE:            break;        case TA0IV_TACCR1:            break;        case TA0IV_TACCR2:            break;        case TA0IV_TACCR3:            break;        case TA0IV_TACCR4:            break;        case TA0IV_5:            break;        case TA0IV_6:            break;        case TA0IV_TAIFG:            GPIO_toggleOutputOnPin(GPIO_PORT_P4, GPIO_PIN1);//此為等于CCR0時            break;        default:            break;    }}

Timer_A_setCompareValue(TIMER_A0_BASE,TIMER_A_CAPTURECOMPARE_REGISTER_1,6249);//更改CCR1的值,但在CCR1產(chǎn)生中斷其頻率只與CCR0有關(guān),更改CCR0無法改變其頻率周期  

Timer_A_enableCaptureCompareInterrupt(TIMER_A0_BASE,TIMER_A_CAPTURECOMPARE_REGISTER_1);//使能CCR1中斷定時器的初始化函數(shù):
void Timer_A_Init(void){    Timer_A_initUpModeParam htim = {0};    htim.clockSource = TIMER_A_CLOCKSOURCE_SMCLK;   //時鐘源選為SMCLK = 1048576 HZ   
htim.clockSourceDivider = TIMER_A_CLOCKSOURCE_DIVIDER_32;    //32分頻    32768   
htim.timerPeriod = 16384 - 1;                                   //計數(shù)值設為16374(32768/2=16374),定時0.5s   
htim.timerInterruptEnable_TAIE = TIMER_A_TAIE_INTERRUPT_ENABLE; //使能TALE中斷   
htim.captureCompareInterruptEnable_CCR0_CCIE = TIMER_A_CCIE_CCR0_INTERRUPT_DISABLE;   
htim.timerClear = TIMER_A_DO_CLEAR; //把定時器的定時計數(shù)器,分頻計數(shù)器的計數(shù)值清零   
htim.startTimer = true; //初始化后立即啟動定時器    //配置定時器A為增計數(shù)模式   
Timer_A_initUpMode(TIMER_A0_BASE, &htim);}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩1
回復

使用道具 舉報

沙發(fā)
ID:1089666 發(fā)表于 2023-7-26 11:24 | 只看該作者
很清晰的講解
回復

使用道具 舉報

板凳
ID:796497 發(fā)表于 2024-1-2 13:21 | 只看該作者
要是代碼排版好一點就更完美了
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表