This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

BLE自动休眠与定时器4冲突

Other Parts Discussed in Thread: CC2541

我有一个项目,使用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例子中找到解决方案 还是非常感谢你的回应