TI中文支持网
TI专业的中文技术问题搜集分享网站

CC1310如何提前退出SLEEP()

在非OS模式下,如何从一个IO唤醒处于sleep()睡眠状态下的CC1310

Mingxin Chen:

现在情况是,在SLEEP下,IO是可以产生中断并进入中断函数处理的,但退出中断后会继续SLEEP,直到睡眠时间到才醒来,我想进中断后判断中断合法就退出SLEEP,有办法吗

Viki Shi:

回复 Mingxin Chen:

你是用的基于TI RTOS的例程吗?如果无任务的话会自动进入低功耗状态,这是系统自动实现的

Mingxin Chen:

回复 Viki Shi:

没有RTOS的,我是裸跑的,有方法吗

Viki Shi:

回复 Mingxin Chen:

是用的nortos的例程吗?以pinStandby为例,也是会自动进入休眠的:
This example will cycle the device between active and standby states. The CPU will toggle the LEDs each time it wakes up from standby, using the PIN driver, and then immediately return to standby.

如果需要退出sleep,建议使用semaphore进行任务调度,参考这边解答: e2echina.ti.com/…/113360

Mingxin Chen:

回复 Viki Shi:

非RTOS就一点办法都没有吗,只能IO中断设置标志,等SLEEP自己唤醒吗?

Viki Shi:

回复 Mingxin Chen:

办法提供了,用semaphore进行任务调度,退出sleep

Mingxin Chen:

回复 Viki Shi:

非RTOS下也可以用semaphore吗?????

Viki Shi:

回复 Mingxin Chen:

nortos的话,还是以pinStandby为例,程序设置是一段时间内【standbyDuration】唤醒一次,进行点亮LED等操作。如果需要唤醒,可以通过中断实现,这部分请参考 pinInterrupt

赞(0)
未经允许不得转载:TI中文支持网 » CC1310如何提前退出SLEEP()
分享到: 更多 (0)