Part Number:CC2540Other Parts Discussed in Thread: CC2640R2F
CC2540 使用Timer3或Timer4, 定时50 -500微秒中断, 示波器抓取的波形测试, 时间不稳定, 请问这是什么问题?
怎么解决?
Nick Sun:
您好,
根据 CC253x/4x User Guide. (Rev. D) 的章节10.2,有如下四种mode:
您使用的是哪一种,有相应代码可以发上来吗?
,
WK C:
我使用的是Down Mode, 其它模式输出异常.
#pragma vector = T3_VECTOR __interrupt void t3_isr(void) {// Clears the module interrupt flag.T3OVFIF = 0;switch(outch){case 0:DIO16(1);outch = 1;T3CTL |= 0x10;//开启break;case 1:outch = 2;T3CTL |= 0x10;//开启break;case 2:DIO16(0);DIO17(1);outch = 3;T3CTL |= 0x10;//开启break;case 3:outch = 4;T3CTL |= 0x10;//开启break;case 4:DIO17(0);T3CTL &= ~0x10;//关闭break;}// Clears the CPU interrupt flag.T3IF = 0; }void timus_init(void) {CLKCONCMD = (CLKCONCMD & ~(0x07 << 3)); //Timer Hz = 32MHZT3CTL = 0x08;T3IE = 1;T3CTL |= 0xA0;//32分频T3CTL |= 0x01;T3CC0 = us / 2;EA = 1; }void timerus_setstatus(uint8 flag) {if(flag){outch = 0;T3CTL |= 1 << 4;}else{T3CTL &= (1 << 4);} }
,
WK C:
CC2540 SDK有没有和 CC2640R2F SDK 中int_fast16_t Power_setDependency(uint_fast16_t resourceId); 类似功能?
,
Nick Sun:
您好,
收到您的跟进,关于这个问题我们还需要一点时间去查看一下,有结论及时联系您。
,
WK C:
我测试不带BLE的时候, 定时器的时间稳定, 带BLE测试定时器的时间就不稳定,测试定时200微秒, 测试出200-760微秒.
这个问题有解决方法吗?
,
Nick Sun:
您好,
收到您的跟进信息,会将其考虑到测试中,尽快给您回复。
,
WK C:
这个问题有解决方法吗?
,
Nick Sun:
您好,收到工程师回复:
WK C 说:CC2540 SDK有没有和 CC2640R2F SDK 中int_fast16_t Power_setDependency(uint_fast16_t resourceId); 类似功能?
我们不清楚CC2540有这样的功能。
WK C 说:
CC2540 使用Timer3或Timer4, 定时50 -500微秒中断, 示波器抓取的波形测试, 时间不稳定, 请问这是什么问题?
在https://e2echina.ti.com/support/wireless-connectivity/bluetooth/f/bluetooth-forum/615755/cc2540-cc2540-ble-timer中的答复可能与该问题有关,BLE堆栈以最高优先级运行。因此,它可能会影响中断处理的时间。(即延迟处理中断)
,
WK C:
有没有办法提高BLE的处理速度?
,
Nick Sun:
您好,
BLE设计之初就是为了尽可能节省能耗,提高处理速度不是特别适合BLE。
是否可以尝试使用BLE5.0的三种不同Physical Layer,1Mbps PHY、2Mbps PHY和coded PHY,PHY的使用会直接影响可以实现的最大数据吞吐量,也可能会对处理速度有所提高。
我们还找到了如下内容您可以参考:https://blog.csdn.net/wenshifang/article/details/109080742