因此,我有一个设备设置为I2C主机,其余的设备上的总线设置为奴隶。主设备向每个从设备发送命令,从设备执行此任务(运行电机、PID、重要时间敏感代码)。我想知道奴隶何时完成了它的任务。我唯一能看到的方法是不断地让主轮询从机,但是这会产生一个问题,因为每次主轮询从机时,都会触发从机上的i2c中断,并且短时间内停止运行电机代码。有什么办法可以解决这个问题吗?我在考虑将所有设备设置为主设备,所以当每个设备完成任务时,它可以发送数据,而不需要轮询。问题在于,我担心总线上的数据与试图同时
通信的设备发生冲突。解决这个问题的正确方法是什么?也许问题不像我想象的那么严重,而且执行PID控制的电机代码可能需要时间来中断,并回复给主机,而不会产生很多问题?这似乎是一个标准场景,其中许多不同的设备运行任务,并在完成任务后返回报告,这通常如何解决?