Вопрос:

Проанализируйте программу, определите тип датчиков и подберите подходящий алгоритм. Номер верного ответа укажите в поле для ввода.

Смотреть решения всех заданий с листа

Ответ:

Алгоритм №1 соответствует описанной программе. Разберем программу по шагам: 1. `#include ` `#include ` Включаем необходимые библиотеки. 2. `const unsigned char RIGHT = 0b00000001;` `const unsigned char LEFT = 0b00000100;` `const unsigned char UP = 0b00000101;` Определяем константы для управления моторами. 3. `void PWM (char vector)` `{` `PORTC = vector;` `delay_us (84);` `PORTC = 0;` `delay_us (16);` `return;` `}` Функция PWM для управления скоростью моторов. 4. `void main(void)` `{` `DDRD = 0x00;` `DDRC = 0xFF;` Устанавливаем направления портов. 5. `while (1)` `{` Бесконечный цикл. 6. `if (PIND.0 && PIND.1)` `{` `PWM (UP);` `continue;` `}` Если оба датчика активны, то едем прямо. 7. `else` `if (PIND.0)` `{` `PWM (RIGHT);` `continue;` `}` Если активен только левый датчик, то вращаем правый мотор. 8. `else` `{` `if (PIND.1)` `{` `PWM (LEFT);` `continue;` `}` `else PORTC = 0;` `}` Если активен только правый датчик, то вращаем левый мотор, иначе останавливаемся. `}` `return;` `}` Таким образом, программа использует два датчика (PIND.0 и PIND.1) и, в зависимости от их состояния, управляет моторами робота. Алгоритм №1 наиболее точно отображает логику этой программы. Следовательно, правильный ответ - 1.
ГДЗ по фото 📸
Подать жалобу Правообладателю