#include "ti_msp_dl_config.h"
int main(void)
{
SYSCFG_DL_init();
NVIC_EnableIRQ(TIMER_0_INST_INT_IRQN);//使能定时器中断
DL_SYSCTL_enableSleepOnExit();//当CPU从处理程序模式切换到线程模式时,在退出时启用休眠。通过启用,允许中断驱动的应用程序避免返回一个空的主程序。
DL_TimerG_startCounter(TIMER_0_INST);//启动定时器0
while (1) {
__WFI();//等待中断
}
}
void TIMER_0_INST_IRQHandler(void)
{
switch (DL_TimerG_getPendingInterrupt(TIMER_0_INST)) {
case DL_TIMER_IIDX_ZERO:
DL_GPIO_togglePins(GPIO_LEDS_PORT,
(GPIO_LEDS_USER_LED_1_PIN));//LED翻转
break;
default:
break;
}
}
很简单的一个例程,syscfg配置好定时500ms,周期性向下计数和归零事件后【syscfg的配置见上一个帖子】,在中断中翻转LED即可。值得注意的是,一定要手动配置启动定时器。
DL_TimerG_startCounter(TIMER_0_INST);//启动定时器0
|