Part Number:CC1310
首先对于传感器控制器我采用了基于RTC的任务执行方式,设置RTC周期为60秒(60s采集一次传感器数据),并在主程序循环之前调用一次 scifStartTasksNbl(),Sensor controller studio里的初始化代码为 fwScheduleTask(1);
执行代码里主要采集数据,并且最后加了条 fwScheduleTask(1); 终止代码无内容。 看完规格书后,我的疑问是scifStartTasksNbl()不是应该只触发初始化代码吗,为什么我一上电就执行了执行代码(而不是60S后的RTC唤醒后才调用执行代码),难道它也触发了执行代码?,
Galaxy Yue:
您好,
您的传感器控制器任务本身必须通过 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去做什么事了?
,
Galaxy Yue:
您好,我需要时间来回复您的问题,请稍等。
,
Galaxy Yue:
您好,建议您看一下此链接
https://www.ti2k.com/wp-content/uploads/ti2k/DeyiSupport_1GHz_node
其中的task 3、4关于您的问题做出了回答。
以下是我为您翻译的重要片段
终止代码仅在应用处理器停止任务时 ( scifStopTasksNbl()) 或在所有任务代码块的单次迭代结束时 ( scifExecuteTasksOnceNbl()) 运行一次。在“ADC 窗口监视器”示例中,终止代码从不运行,因此留空。