尊敬的 Bob:
感谢您的回复、
我们现在获得了外部中断、它工作正常。
现在、我面临另一个问题。 正如我告诉您的、我们正在从 Stellaris 迁移到 Tiva 、因此在 Stellaris 中工作的计时器也面临着问题。
初始化中配置的 timer2
{
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOB);
GPIOPinConfigure (GPIO_PB7_T6CCP1);//将 Timer2 CCP5函数配置为使用 PE5
ROM_GPIOPinTypeTimer (GPIO_PORTB_BASE、GPIO_PIN_7);
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_TIMER2);//针对边沿定时器模式、正边沿设置 Timer2B
ROM_TimerConfigure (TIMER2_base、TIMER_CFG_SPLIT_PAIR | TIMER_CFG_B_CAP_COUNT);
ROM_TimerControlEvent (TIMER2_base、TIMER_B、TIMER_EVENT_POS_EDGE);
ROM_TimerLoadSet (TIMER2_base、TIMER_B、0x0001);
ROM_TimerMatchSet (TIMER2_base、TIMER_B、0x0000);
ROM_TimerIntEnable (TIMER2_base、TIMER_CAPB_MATCH);
ROM_IntEnable (INT_TIMER2B);
}
在获得第一个脉冲之后、我启动时间器2。
空 Timer2_start (空)
{
ROM_TimerLoadSet (TIMER2_base、TIMER_B、0xFFFF);
ROM_TimerMatchSet (TIMER2_base、TIMER_B、0x0000);
ROM_TimerEnable (TIMER2_base、TIMER_B);
ROM_IntEnable (INT_TIMER2B);
Fout_intCount=0;
}
10个脉冲后、定时器停止并读取定时器、但未获得 N_ACTUAL 中的值 、可能的原因是什么?
ROM_TimerDisable (TIMER2_base、TIMER_B);//禁用 Timer2
n_actual = fout_intCount*0xFFFF + 65535 - ROM_TimerValueGet (TIMER2_base、timer_B);
如下所示
空 Timer2IntHandler (空)
{
ROM_TimerIntClear (TIMER2_base、TIMER_CAPB_MATCH);//清除计时器中断。
ROM_TimerLoadSet (TIMER2_base、TIMER_B、0xFFFF);
ROM_TimerMatchSet (TIMER2_base、TIMER_B、0x0000);
ROM_TimerEnable (TIMER2_base、TIMER_B);
ROM_IntEnable (INT_TIMER2B);
ROM_TimerIntEnable (TIMER2_base、TIMER_CAPB_MATCH);
Fout_intCount++;
}