我试图理解 cc2541时钟和 timer3、但出于某种原因、我得到的时间比预期的要长。
我的板使用32MHz 外部振荡器运行、我按如下方式配置时钟:
CLKCONCMD =(CLKCONCMD 和~(CLKCON_OSC | CLKCON_CLKSPD))| CLKCON_CLKSPD_32M;
和定时器3:
T3CTL = T3CTL_DIV_1 | T3CTL_MODE_FREERUN | T3CTL_OVFIM | T3CTL_CLR | T3CTL_START;
在 Time3 ISR 函数中、我切换输出并使用示波器对其进行监控。 示波器显示的是大约32kHz 的方波信号、或32uS 的周期。
如果我正确理解配置、Timer3应该递增32M/秒、ISR 应该 被调用32M/256/秒、从而产生大约8uS 的周期、比我实际得到的周期短大约4倍。
我缺少什么?
这是我的 ISR
#pragma vector = t3_vector
_interrupt void T3_ISR (void)
{
静态 uint8 ON=0;
//清除模块中断标志。
T3OVFIF = 0;
P1_0 =打开;//切换输出
ON=!ON;
//清除 CPU 中断标志。
T3IF = 0;
}