Ошибка в скетче

Technofox
Offline
Зарегистрирован: 25.06.2020

Всем доброго дня.

Смотрю уроки по Arduino и пытался выполнить один скетч.

Необходимо чтобы порт принимал данные в целочисленном формате и выдавал то же значение.

Всё сделал как в инструкции, перепроверил, но всё равно после нужной цифры выдаёт «-38». То есть я ввожу, например, 5, а он выдаёт 5 и в следующей строке -38.

В чём может быть проблема? Буду признателен за совет.

Скриншоты прилагаю.

b707
Offline
Зарегистрирован: 26.05.2017

когда вы после ввода цифры 5 нажимаете Enter - этот Энтер тоже передается по проводам...

Technofox
Offline
Зарегистрирован: 25.06.2020

Проверил, оказалось что нет. Даже если нажимаю "отправить" мышкой в окне программе, всё равно добавляет "-38".

b707
Offline
Зарегистрирован: 26.05.2017

Technofox пишет:

Проверил, оказалось что нет. Даже если нажимаю "отправить" мышкой в окне программе, всё равно добавляет "-38".

ну значит инопланетяне....

проверил он, понимаешь... Судя по -38, код передаваемой клавиши = 10. Это клавиша перевода строки.

 

Technofox
Offline
Зарегистрирован: 25.06.2020

Конструктивный совет...

Так что а что не так, если и при нажатии без "enter" результат тот же? 

К чему этот сарказм? Я сюда пришел научиться и спросить совета.

b707
Offline
Зарегистрирован: 26.05.2017

Technofox пишет:

Спасибо за конструктивный совет)))

в настройках терминала ардуины отключите добавление перевода строки:

Technofox
Offline
Зарегистрирован: 25.06.2020

Спасибо. Помогло. 

Вы сперва сказали про клавишу "enter". Я и попробовал отправлять без неё.

b707
Offline
Зарегистрирован: 26.05.2017

А вообще лучше подобные ситуации предусматривать в коде. Потом вы забудете про перевод строчки - и снова вылезет белибердда. Или пользователь вместо цифры отправит букву.

А всего-то надо в программе на ардуино проверять правильность пришедших данны. Очевидно, что цифры бывают только от 0 до 9, сл-но все что меньше нуля и больше 9 - это не цифра, отбрасываем.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Да да, такие «просчёты» при написании кода, в частности сайтов (на PHP к примеру), приводят к огромным уязвимостям и в том числе доступу к sql. А потом «базу украли», «мы ту ни при чем», «это все хакеры»...

Technofox
Offline
Зарегистрирован: 25.06.2020

b707 пишет:

А вообще лучше подобные ситуации предусматривать в коде. Потом вы забудете про перевод строчки - и снова вылезет белибердда. Или пользователь вместо цифры отправит букву.

А всего-то надо в программе на ардуино проверять правильность пришедших данны. Очевидно, что цифры бывают только от 0 до 9, сл-но все что меньше нуля и больше 9 - это не цифра, отбрасываем.

Как это предусмотреть в данном скетче?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Technofox пишет:

b707 пишет:

А вообще лучше подобные ситуации предусматривать в коде. Потом вы забудете про перевод строчки - и снова вылезет белибердда. Или пользователь вместо цифры отправит букву.

А всего-то надо в программе на ардуино проверять правильность пришедших данны. Очевидно, что цифры бывают только от 0 до 9, сл-но все что меньше нуля и больше 9 - это не цифра, отбрасываем.

Как это предусмотреть в данном скетче?

Вы не знаете, чем цифра отличается от не цифры?

Цифры это "0", "1", "2", "3", "4", "5", "6", "7", "8" и "9". Все остальное - не цифры (при условии, что мы пользуемся десятичной системой).

b707
Offline
Зарегистрирован: 26.05.2017

Technofox пишет:

Как это предусмотреть в данном скетче?


простите, а разве фразы " все что меньше нуля и больше девяти - отбрасываем" недостаточно?