Цитата
Мне непонятно когда эта задача выполнена с использованием одной статической переменной temp, если это выполнено именно так, как второму модулю узнать что данные о температуре актуальны?
очень просто - через вторую стат.переменную (напр.
t_rdy). Первый модуль проверяет что
t_rdy==0, если так, пишет в
temp температуру и 1цу в
t_rdy. Второй модуль ждет 1цу - если есть, читает значение
temp, и сбрасывает
t_rdy в 0.
Так как t_rdy 8-битная, доступ к ней атомарный и никаких доп.средств синхронизации не нужно.
Хотя в большинстве случаев и этого не нужно, можно просто периодически обновлять значение на индикаторе без синхронизации.
В приведенном примере видно что используется просто стек сообщений (или кольцевой буфер) - в одном месте добавляются, в другом - читаются и удаляются.
Сообщение отредактировал zöner - May 26 2013, 22:12