Странное поведение последовательного порта Arduino - PullRequest
0 голосов
/ 08 мая 2020

Я пытаюсь установить sh последовательную связь между двумя arduinos, один - передатчик, а другой - приемник c. Это игра в угадывание, когда вы генерируете случайное число и распечатываете его на ЖК-дисплее 16x2, и вам нужно угадать правильное число. Я использую регистры и прерывания. Я тестирую это в ISIS Proteus. Приемник ведет себя странно, потому что всякий раз, когда я нажимаю кнопку для числа 1, он показывает это число только до тех пор, пока я не удерживаю эту кнопку, иначе он изменится. Это странно, потому что, когда я начинаю брутфорсить эти кнопки, через некоторое время это исправляется, а после перезапуска снова ломается. Я пытаюсь отобразить также правильные точки, неправильные точки и круглое число, но это тоже не работает. Я получу только 1 хороший балл или 1 неправильный балл. недоступна последовательная связь, например, когда я не удерживаю кнопку, будет выполнено условие else и мои переменные будут установлены на 0.

1 Ответ

2 голосов
/ 08 мая 2020

У вас проблема в логе c. Как написано прямо сейчас, если нет доступного серийного номера, что будет большую часть времени, потому что функция l oop может повторяться тысячи раз за время, которое требуется для входа одного символа, тогда вы сбрасываете все обратно на ноль. Таким образом, пользователь делает предположение, а затем через несколько микросекунд, когда для последовательного порта ничего не доступно для чтения, он переходит к этому else и сбрасывает все ваши переменные. Не думаю, что ты этого хочешь.

Передатчик в беспорядке. Почему вы используете прерывания для чтения этих кнопок? Прерывание предназначено для действительно быстрых вещей, которые могут быть упущены. Человек нажимает кнопку очень медленно. Если супермен или The Fla sh не являются пользователем, вам не нужно прерывание для чтения нажатия кнопки. Просто прочтите кнопку от l oop и отреагируйте соответствующим образом.

...