上面的 no-RTOS 代码, 配置 CC1310 使用 4M bps 模式, 执行 5次 传感器信息的 检测 和 无线传送; 然后 CC1310 休眠 500ms
调试过程中, 也实时 检测工作状态下的 电流信息:
(1) 休眠500ms 电流大致 820uA
(2) 执行 RF_tran_init 操作
(3) 执行 trig_sensor_work() 让传感器 启动工作, 然后 进入 usleep(300), 电流 12mA
(4) 执行 i2c_read_sensor_info() 电流 12mA~15mA 持续大约 1ms
上面的 (3) 和 (4), 执行5次 以后, 然后执行 RF_tran_close, 再执行上面的 (1)
上述代码, 可以顺利执行。对于 无线接收端, 可以接收到对应的 信息, 传送到 计算机 并 保存。
但是, 持续 运行状态下, 有时候会出现下面的 问题:
* 无线接收端 不能接收到 无线信息了; 检
* 测的 电流信息, 持续 12mA ---> 很像是 持续处于 上面的(3) 对应的 usleep(300) 那种状态
有时 运行 几十分钟 出现这个问题; 有时运行 几个小时 出现这个问题。
如果将上面的那一行代码 usleep(300) 修改为 CPUdelay( CLK_DIV3_300us ), 多个测试单板, 都可以 持续运行 ---> 上面的(1) 休眠500us usleep(500100) 始终可以顺利运行。
请问一下, 对于 usleep 执行小于 1ms 的休眠, 是否在 某种情况下, 它就 不能退出 休眠状态了?
另外, pinStandby 例程中的 sleep 函数, 可以配置 休眠 N-sec。
请问一下, 使用 sleep() 是否 比 usleep() 可以让 CC1310 休眠状态下的 电流, 更小一些? 对于 sleep() 休眠时间, 是否 可以 配置 小于1秒的、 N-ms 状态?