We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
We have four identical µC systems based on STM32G081, running same, identical firmware.They receive commands via one, single RS-485 bus.One job is switching a GPIO pin from on to off.UART interrupt has highest prio (0), consuming task has highest prio (realtime).Occasionally one or more system (see LA pictures) are delayed.Delay is always the same (@24 MHz 3.7 ms, @ 64 MHz 1.8 ms).
May someone help in what is blocking the consuming task ?Best regards, Juergen
It turned out that it is/was a synchronizing problem between the four units.We thought having this eliminated by inserting a 'osDelay(1) before switching the outputs off.But osDelay seems not to work if the task calling osDelay is the only task currently running:The scheduler will not switch to idle task for 1 ms, but instead will run the calling task without delay.We now use __NOP() and that works.So the case can be closed.
Juergen Marquardt said:So the case can be closed
You do that: