Одометр
- Войдите на сайт для отправки комментариев
Сб, 23/07/2016 - 10:09
Имеется вот такой код, нужно посчитать кол-во оборотов колёса. Этот код всегда возвращает 1. Почему так?
While (digitalRead(btn) == HIGH); dst++;
Имеется вот такой код, нужно посчитать кол-во оборотов колёса. Этот код всегда возвращает 1. Почему так?
While (digitalRead(btn) == HIGH); dst++;
Потому что точка с запятой в конце первой строки. И он вообще компилироваться не должен - while с большой буквы написано.
В коде с маленькой, это здесь, я так написал. А в целом что может быть не так в 2 строчках? dst это должно быть int или что-то другое?
В коде с маленькой, это здесь, я так написал. А в целом что может быть не так в 2 строчках? dst это должно быть int или что-то другое?
Я вам написал - уберите точку с запятой в конце первой строки. У вас из-за этой точки с запятой отсутствует тело цикла, которое будет выполняться при совпадении по условию.
выводит различные числа, от -32854 до 12856
Приведённый Вами скетч не может ничего никуда выводить, если желаете помощи/советов/предметного разговора - выкладывайте скетч полностью.
В коде с маленькой, это здесь, я так написал.
Вы издеваетесь? Люди тратят время на поиск ошибок в бреде, который Вы "здесь так написали"?
Код выкладывается
а) полностью
б) копи-пастом, а не ручным переписыванием.
Не кусайтесь. Ребенок же.
Денчик, если тело цикла состоит из одного только dst++, то этот самый цикл начинает крутиться со страшной скоростью и переменная тупо переполняется неизвестное количество раз, пока не случится выполнение условия выхода из цикла. Можно скзать, что при выходе из цикла переменная имеет случайное значение.
Дополню предыдущего оратора: чтобы написать корректно работающий код, надо точно знать, что именно хочется сделать/получить. Без всех необходимых вводных - результат может быть ХЗ.
Спасибо, работает