主题中讨论的其他器件: MSPM0G3507、 SysConfig
您好!
使用 LP-MSPM0G3507来评估计时器。
SDK 使用 MSPM0 1.0.1.03。
我在示例工程中使用了"timx_timer_mode_one_shot_standby_LP_MSPM0G3507_nortos_ticlang"进行了检查、并确认计时器 G 不能正常工作。
在对样本项目稍作修改后、当定时器中断被进入时、定时器中断在一段特定的时间后被重新设定。
以下代码。
当您执行此代码时、将进行以下移动。
1在第12行输入___ WFI ()。
2输入第一个计时器中断。
3与第12行上的__ WFI ()没有进展。
4如果您使用调试器暂停→重启、则会继续执行第13行。
5输入第二个计时器中断。
有一种现象在第三阶段没有进展,但为什么会这样发生呢?
如果不使用 WFI ()和使用标志进行控制,但不使用调试器,计时器将无法正常工作。
我想请您教授。
int main(void)
{
SYSCFG_DL_init();
NVIC_EnableIRQ(TIMER_0_INST_INT_IRQN);
DL_SYSCTL_enableSleepOnExit();
DL_GPIO_clearPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);
DL_TimerG_startCounter(TIMER_0_INST);
while (1) {
__WFI();
DL_GPIO_clearPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);
DL_Timer_setTimerCount(TIMER_0_INST,TIMER_0_INST_LOAD_VALUE);
DL_Timer_startCounter(TIMER_0_INST);
}
}
void TIMER_0_INST_IRQHandler(void)
{
switch (DL_TimerG_getPendingInterrupt(TIMER_0_INST)) {
case DL_TIMER_IIDX_ZERO:
DL_GPIO_setPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);
DL_Timer_stopCounter(TIMER_0_INST);
DL_Timer_setTimerCount(TIMER_0_INST, 0x0);
break;
default:
break;
}
}



