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.

CC1310: 关于Sensor controller studio 里的RTC_BASE任务执行有些疑问

Part Number: CC1310

首先对于传感器控制器我采用了基于RTC的任务执行方式,设置RTC周期为60秒(60s采集一次传感器数据),并在主程序循环之前调用一次 scifStartTasksNbl(),Sensor controller studio里的初始化代码为    fwScheduleTask(1);

执行代码里主要采集数据,并且最后加了条 fwScheduleTask(1);      终止代码无内容。 看完规格书后,我的疑问是scifStartTasksNbl()不是应该只触发初始化代码吗,为什么我一上电就执行了执行代码(而不是60S后的RTC唤醒后才调用执行代码),难道它也触发了执行代码?,

  • 您好,

    您的传感器控制器任务本身必须通过 RTC 调度或事件触发调度安排下一个任务迭代。 根据您提供的实验过程描述判断您正在使用 RTC 调度。 这意味着 SC 任务中的执行代码必须在每次迭代后调用 fwScheduleTask(),在 TI-RTOS 应用程序中,在配置 RTC 后调用 scifStartTasksNbl()。

    fwScheduleTask (N)计划在将来执行代码 N 个 RTC 周期的一次执行。 因此、如果你在初始化代码中调用 fwScheduleTask (N)、那么执行代码将在未来执行 N 个 RTC 周期。 如果您在执行代码中继续调用 fwScheduleTask (N)、则运行执行代码将保留计划本身、从而连续运行。

    此外,在初始化代码或执行代码中,fwSchedule Task()是第一行还是最后一行调用无关紧要。fwSchedule Task()在运行的代码完成后生效。

    希望能对您有所帮助。

  • 您好,首先感谢您的解答,我的确用的RTC调度,另外我通过查看相关资料,发现在每个RTC的周期都会唤醒SC,所以想确定下,每次唤醒后会主动去执行execution code 里的代码吗,另外,如果我调用   fwScheduleTask(5) 使其5个周期后执行一次任务,那么前5次的唤醒SC去做什么事了?

  • 您好,我需要时间来回复您的问题,请稍等。

  • 您好,建议您看一下此链接

    https://dev.ti.com/tirex/explore/node?node=A__ADGzX5U13iRKZ8SSryvxjw__com.ti.SIMPLELINK_ACADEMY_CC13X0SDK__1FaRUBA__LATEST

    其中的task 3、4关于您的问题做出了回答。

    以下是我为您翻译的重要片段

    终止代码仅在应用处理器停止任务时 ( scifStopTasksNbl()) 或在所有任务代码块的单次迭代结束时 ( scifExecuteTasksOnceNbl()) 运行一次。在“ADC 窗口监视器”示例中,终止代码从不运行,因此留空。