Other Parts Discussed in Thread: AM2434, SYSCONFIG
器件型号: AM2434
主题: DP83869、 SysConfig 中讨论的其他部分
你(们)好
我们使用的是 AM2434 - ind_comms_sdk_am243x_09_02_00_24、我们有一个 DAC 与 am2434 连接、它通过 I2C 通信进行通信。 因此、我们在 EIP 代码实现中为 DAC 流程创建了一个新任务。 由于需要控制电机转速、需要每 10ms 调用一次 DAC 处理任务。 为了实现这一点、我们根据系统节拍添加了 10ms 的调度。
由于 PLC 输入是在以太网任务中处理的、为了避免数据丢失、我们还在 10ms 内添加了 EIP 任务。
以下是我们为 10ms 运行使用的逻辑(EIP 和 DAC 任务):
```c
void EI_APP_TASK_MAIN (void * pvTaskArg_p)
{
uint32_t lastCalled = OSAL_getMsTick ();
对于(;;)
{
uint32_t now = OSAL_getMsTick ();
uint32_t elapsed =现在 — 已调用;
如果(经过时间< 10){
OSAL_Sched_sleep (10–elaped);
}
lastCalled += 10;//保持日程安排紧张
}
}
```μ s
但是、在两个任务中集成此 10ms 计划后、对于几个以 20 张卡菊花链连接的卡、网络会在~2 小时后脱机。
有趣的是,如果我在两个任务中都使用`OSAL_Sched_sleep ()`,则没有脱机问题。
我紧张的时间表实施是否会出现问题?
此外、您能否解释两个任务中解决离线问题的推荐方法?



