Нужна помощь по Си!!!
Не могу разобраться, как написать программу отъезда пылесоса от препятствия. Точнее, как работает оператор IF.
Датчики подсоединены к портам PD4 и PD3.
Кусок кода:
// если удар на всех бамперах. Т.е. и левом, и правом
if ((PIND.4)&(PIND.3)) { // Если лог. "1" на обоих портах PD4 и PD3
PORTC &= ~_BV(PC0); // Остановить ход!!!
_delay_ms(4000); // Ждем 4 сек.
PORTC |= _BV(PC0); // Включаем ход!
PORTC |= _BV(PC1); // назад реле левого двигателя
PORTC |= _BV(PC2); // назад реле правого двигателя
for (int i = 0; i < 1; i++)
{
_delay_ms(4000); // Робот отъезжает
}
// уходим влево
PORTC |= _BV(PC0); // лог "1" hod
PORTC |= _BV(PC1); // лог "1" lev
PORTC &= ~_BV(PC2); // лог "0" prav
}
И так далее...
Компилятору не нравится строчка с оператором IF. Видимо, что-то неправильно оформлено. Но что?