diff options
author | Sergey V. DUDANOV <sergey.dudanov@gmail.com> | 2016-07-07 23:11:13 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-07-07 23:11:13 +0300 |
commit | eb13f4e66807907c4e3856ad163f908f29d3df2c (patch) | |
tree | 9579ae27d23a37b152da9942323b8407e62bd758 | |
parent | 15935fde024da9f88078806fdf978c5bdcbb0370 (diff) |
Update clunet.c
-rw-r--r-- | clunet.c | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -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; // Сбросим счетчик периодов таймера } |