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.

[参考译文] RTOS/LAUNCHXL-CC2650:CC2650/I2C/时间管理

Guru**** 2595805 points
Other Parts Discussed in Thread: CC2650

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/621482/rtos-launchxl-cc2650-cc2650-i2c-time-management

器件型号:LAUNCHXL-CC2650
Thread 中讨论的其他器件:CC2650

工具/软件:TI-RTOS

您好!


我是 BLE CC2650的项目,我必须在特定的时间内通过 I2C 发送数据(例如10秒)。

通过使用时钟、计时器或时间戳、实现它的最基本和最简单的方法是什么?

当切换 LED 时、这段编码位于 BLE 的应用部分(如 project_zero_app_cc2650launchxl)。


while (condition   ){

             TxBuffer[0]= 0x19;
             TxBuffer[1]= 0xFF;
             i2cTransaction.writeCount  = 2;
             i2cTransaction.writeBuf    = txBuffer;
             i2cTransaction.ReadCount   = 0;
             i2cTransaction.readBuf     = rxBuffer;
             i2cTransaction.slaveAddress = 0x32;
             I2C_transfer (i2c、&i2cTransaction);
             (笑声)





谢谢、

J.




  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    对于一种非常基本的方法,只需在 while 循环中使用 Task_sleep()(如果使用单独的任务)。 这些刻度以系统刻度为单位、每个刻度大约为10us。

    您还可以使用时钟对象布置事件。 然后、应用任务可以在该事件上解除阻止并处理 I2C 事务。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Tom Kopriva"]

    对于一种非常基本的方法,只需在 while 循环中使用 Task_sleep()(如果使用单独的任务)。 这些刻度以系统刻度为单位、每个刻度大约为10us。

    您还可以使用时钟对象布置事件。 然后、应用任务可以在该事件上解除阻止并处理 I2C 事务。

    [/报价]

    否,Task_sleep()不合适,因为我要在与 Task_sleep()相反的特定时间内执行循环内的块。

    Task_sleep (x)使任务持续 x 秒、但我想持续 x 秒。

    (我不使用单独的任务)。

    J.