TI中文支持网
TI专业的中文技术问题搜集分享网站

如何用Timer3生成精确的定时事件?(避免RF中断的影响)

如题,我使用timer3来生成定时事件,每1ms一次中断,每50次中断翻转一次io做测试。

实际测试发现io翻转毫无周期可言,怀疑是timer3中断被RF中断抢占导致的,于是将timer3所在的中断组提升到最高优先级。

这样测试发现,io已经是精确地50ms翻转一次了。

但是由于调高了定时器中断,RF中断可能被抢占,造成了另外的问题:

    大概有1/50的概率,上电后cc2541的observer功能会失效(扫描不到广播包)。

    这是调高优先级之前未发生过的。

请问如何同时保证射频功能的稳定,和 定时器事件的精确?

cedar_xuesong:

在初始化函数中,加入下面两句

HCI_EXT_ClkDivOnHaltCmd( HCI_EXT_DISABLE_CLK_DIVIDE_ON_HALT ); HCI_EXT_HaltDuringRfCmd( HCI_EXT_HALT_DURING_RF_DISABLE );

Caize Wu:

回复 cedar_xuesong:

你好,这两句只是让MCU在RF操作的时候不休眠(切换到低速晶振)吧?

我已经做了这个处理的,否则连PWM都会受影响。

现在的问题是T3中断被抢占,而不是T3运行时被切到低速晶振。

赞(0)
未经允许不得转载:TI中文支持网 » 如何用Timer3生成精确的定时事件?(避免RF中断的影响)
分享到: 更多 (0)