Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/clunet.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey V. DUDANOV <sergey.dudanov@gmail.com>2016-07-07 23:11:13 +0300
committerGitHub <noreply@github.com>2016-07-07 23:11:13 +0300
commiteb13f4e66807907c4e3856ad163f908f29d3df2c (patch)
tree9579ae27d23a37b152da9942323b8407e62bd758
parent15935fde024da9f88078806fdf978c5bdcbb0370 (diff)
Update clunet.c
-rw-r--r--clunet.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/clunet.c b/clunet.c
index a035900..7805909 100644
--- a/clunet.c
+++ b/clunet.c
@@ -142,7 +142,7 @@ ISR(CLUNET_TIMER_COMP_VECTOR)
/* Этот блок кода может прижать линию к земле */
default:
- // Проверка на конфликт. Если мы линию не держим, но она уже занята
+ // Арбитраж. Если мы линию не держим, но она уже занята.
if (!CLUNET_SENDING && CLUNET_READING)
{
CLUNET_DISABLE_TIMER_COMP; // Выключаем прерывание сравнения таймера (передачу)
@@ -286,6 +286,12 @@ ISR(CLUNET_INT_VECTOR)
/* Если линию прижало к нулю */
if (CLUNET_READING)
{
+ /* Если мы в режиме передачи и прижали не мы, то в арбитраже не участвуем и ждем */
+ if (clunetSendingState && !CLUNET_SENDING)
+ {
+ CLUNET_DISABLE_TIMER_COMP;
+ clunetSendingState = CLUNET_SENDING_STATE_WAITING_LINE;
+ }
clunetTimerStart = now; // Запомним время начала сигнала
clunetTimerPeriods = 0; // Сбросим счетчик периодов таймера
}