Здравствуйте, возникла проблема касательно датчика YL-63. По прерыванию датчика в ком порте должно отображаться ОДНО сообщения, а у меня по прерыванию там творится хаос, и отображается КУЧА сообщений. Может у кого то была такая проблема, или у кого-то есть идеи как это можно решить. На изображении предоставлен код и результат по ОДНОМУ прерыванию.
Судя по коду и результату, у вас из обработчика прерывания YL_63 программа не выходит вообще и молотит там вывод значения функции millis() в цикле. Возможно у функции millis() возникает какой то конфликт при вызове ее внутри прерывания и из-за этого ваша программа не работает как задумывалось. Конфликт может возникать, если внутри обработчика вызываемой функции происходит вызов другого прерывания, без обработки которого, данный код не обрабатывается. Попробуйте сделать так Код (C++): sti; serial.println(millis()); плюс ко всему выше написанному, обратите внимание, что у вас результат выводится одинаковый для значения функции, которое переполняется дней пять.
внутри прерывания ваще лучше ни миллис ни сериал.принт не использовать. достаточно взвести флаг, а отправлять всё уже из лупа по факту этого флага хотя, если оно не просто зависает, а продолжает спамить - то значит скорее всего дело в датчике. но в любом случае лучше в прерывании всю эту фигню не делать.
этот так называемый датчик уже здесь обсуждали http://forum.amperka.ru/threads/Датчик-препятствий-yl-63.19189/