首先先看看定时器的介绍吧
它具有三种模式,一个连续计数模式,一个增计数模式,增减计数模式:
TA1_Init(void)
{
//[结构体]
Timer_A_UpDownModeConfig upDownConfig;
配置定时器1:
upDownConfig.captureCompareInterruptEnable_CCR0_CCIE =
TIMER_A_CCIE_CCR0_INTERRUPT_ENABLE; //不使能CCR0中断
upDownConfig.clockSource = TIMER_A_CLOCKSOURCE_SMCLK; //时钟源
upDownConfig.clockSourceDivider = TIMER_A_CLOCKSOURCE_DIVIDER_1; //分频
upDownConfig.timerClear = TIMER_A_DO_CLEAR; //清除值
upDownConfig.timerInterruptEnable_TAIE = TIMER_A_TAIE_INTERRUPT_DISABLE; //不使能中断
upDownConfig.timerPeriod = 7200; //装载值(装载值 = 24M /频率)
MAP_Timer_A_configureUpDownMode(TIMER_A1_MODULE, &upDownConfig); //配置定时器1
MAP_Timer_A_startCounter(TIMER_A1_BASE, TIMER_A_UP_MODE); //选择模式开始计数
MAP_Timer_A_clearCaptureCompareInterrupt(TIMER_A0_BASE,TIMER_A_CAPTURECOMPARE_REGISTER_;
//清除比较中断标志位
MAP_Interrupt_enableInterrupt(INT_TA1_0); //开启定时器的端口中断
MAP_Interrupt_enableMaster(); //开启总中断
}
void TA1_0_IRQHandler(void)
{
MAP_Timer_A_clearCaptureCompareInterrupt(TIMER_A1_BASE,
TIMER_A_CAPTURECOMPARE_REGISTER_0);
count++;
}
代码亲测可用的,中断也是可以进入的。(配置过程感觉还是标准库32的代码差不多的)