微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 如何用Timer3生成精确的定时事件?(避免RF中断的影响)

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

时间:10-02 整理:3721RD 点击:

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

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

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

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

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

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

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

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

HCI_EXT_ClkDivOnHaltCmd( HCI_EXT_DISABLE_CLK_divIDE_ON_HALT );
HCI_EXT_HaltDuringRfCmd( HCI_EXT_HALT_DURING_RF_DISABLE );

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

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

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top