IDma88
@IDma88
Программист C++

Почему не считается остаток от деления в Arduino?

Имеем код, написанный в Arduino IDE:
void setup() { 
	Serial.begin(4800); 
} 

void loop() { 
	Serial.write((7 % 5) + 65);
}


Исходя из правил математики в выражении (7 % 5) + 65 мы должны получить 67, однако реально Arduino будет писать в порт 72.

Как я не пытался, но оператор "%" (остаток от деления) у меня не работает.
Что я делаю не так?
  • Вопрос задан
  • 2587 просмотров
Решения вопроса 1
IDma88
@IDma88 Автор вопроса
Программист C++
Вопрос можно считать закрытым, т.к. проблема оказалась в Proteus'е, который я использовал для симуляции.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
a_volkov1987
@a_volkov1987
Инженер опытного производства
arduino.ru/Reference/Serial/Write
arduino.ru/Reference/Serial/Print

Видите разницу?
В первом случае вы результат отправите как бинарный код. И монитор порта отобразит совсем не то, что вы ожидаете.
Во втором случае вы результат отправите как ASCII текст. То есть, что отправите, то и увидите в мониторе.

Попробуйте просто для сравнения:
Serial.write(65);
Serial.write("65");
Serial.print(65);

Вывод: проблема не в математике, проблема в формате вывода результата в порт.
7704bdbbbae94ba498493b97e096d07e.png

UPD: ТС для проверки использует Proteus, я - Arduino Leonardo
Ответ написан
@antonsr98
Системный Администратор
деление же через / :)
почитайте arduino.ru/Reference/Arithmetic полезно :)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
15 авг. 2020, в 05:42
50000 руб./за проект
15 авг. 2020, в 05:23
5000 руб./за проект
15 авг. 2020, в 04:49
5000 руб./за проект