BLE自动休眠与定时器4冲突
时间:10-02
整理:3721RD
点击:
我有一个项目,使用CC2541, 软件是从SensorTag修改而来
板子上另有一个无源蜂鸣器接在P2.0上通过 PWM(Timer4 通道0)驱动,
目前发现的问题是:单独写个不带其他任何内容的PWM程序驱动蜂鸣器没有问题,但是放在整个程序中(使用了BLE 1.4), PWM输出波形有变形,
我设定的是4K的输出, 在使用了BLE的工程中P2.0输出的脉冲很长,超过了250us的周期,所以输出的声音听起来嘶哑 很难听
因为单独写pwm程序驱动,所以我想应该是软件方面哪里冲突了, BLE的休眠机制我还没有完全参透,请问TI的技术支持,还有各位大牛, 有没有可能BLE自动休眠的时候导致PWM不输出呢,
信号变形不规则的,没有很特定的规律 我正在做其他实验 如有结果在这里贴出
恳请TI的支持,或者其他高人现身 不然我只有把代码一点点屏蔽来看问题了 这个就太费时间了
休眠时timer不工作的,需要切换工作状态
uint8 buzzer_Start(uint16 frequency) { Buzzer_Init(); //切换电源模式为常通 #if defined ( POWER_SAVING ) osal_pwrmgr_device( PWRMGR_ALWAYS_ON ); #endif //...... }
//暂停播放 extern void Buzzer_Pause(void) { //..... //切换电源模式,进入节电 #if defined ( POWER_SAVING ) osal_pwrmgr_device( PWRMGR_BATTERY ); #endif }
//停止播放 extern void Buzzer_Stop(void) { //...... //切换电源模式,进入节电 #if defined ( POWER_SAVING ) osal_pwrmgr_device( PWRMGR_BATTERY ); #endif }
控制代码省略,自己编写
虽然刚刚解决了问题之后才发现此回复 不过还是多谢这位高人
TI的keyfob应用中有这种例子 可惜我一开始没有注意到
不过TI的技术支持是不是也太懒了....
谢谢高人 虽然刚刚从keyfob例子中找到解决方案 还是非常感谢你的回应