我有一个 FRDM-KL26Z 板,我试图使用 PIT 来获得中断,但它失败了。
我正在做的事情:
- 声明应该打印一行文本的 PIT 处理程序
void PIT_IRQHandler(void)
{
PRINTF(\"PIT_IRQHandler \\r\\n\");
}- 设置坑
unsigned int *sim_scgc6 = (unsigned int *) 0x4004803C;
*sim_scgc6 |= 1U << 23; // enable clock gate PIT
unsigned int *pit_mcr = (unsigned int *) 0x40037000;
*pit_mcr &= ~(1U << 1); // enable PIT
*pit_mcr &= ~(1U << 0); //
timer continues in debug mode
unsigned int *pit_ldval0 = (unsigned int *) 0x40037100;
// *pit_ldval0 = 0x0003E7FF; // setup timer 1 for 256000 cycles
*pit_ldval0 = 0xF;
unsigned int *pit_tctrl0 = (unsigned int *) 0x40037108;
*pit_tctrl0 |= 1U << 1; // enable interrupt
*pit_tctrl0 |= 1U; // start timer- 然后进入无限循环
我没有从 PIT 处理程序获取线路。
我附上了完整的代码。这是我想念的东西吗?在调试模式下,我看到计时器发生变化并且设置了 TIF 标志,但未执行处理程序。