| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > возврат значения функцией с временной задержкой |
| Автор: supercelt 3.9.2017, 00:35 | ||||||||||
Здравствуйте! подскажите пожалуйста. Вот допустим у меня есть ф-ия
и в майне я делаю вот так
соответственно получаю значение. НО, использовать такую задержку что бы простаивало время я не могу. Придумал сделать по таймеру. Значит настроил его так что каждые 5 мс прерывание. И в нем выставляется флаг разрешения
а в функции:
так вот когда я ее вызову в майне
На момент вызова она же выдаст d = 0? Ведь таймер ещё не отработал свои 4 раза. А если я уберу return 0, то выдает ошибку и не пропускает. П.С. по условию возвратить 1 ф-ия должна именно после 4 прогонов |
| Автор: Romikgy 3.9.2017, 15:21 |
да PS вопросов более не увидел , что хотели спросить этим постом тоже не понятно... |
| Автор: baldman88 4.9.2017, 21:43 | ||||
Смысл в том, что инкрементировать нужно через определенные промежутки времени, как я понимаю. Чтобы в эти промежутки времени ядро могло заниматся полезной работой и используются прерывания от таймера (чтобы не просто в цикле ждать). А по делу да -- нужна статическая переменная. |
| Автор: supercelt 5.9.2017, 13:24 |
| Про count это я знаю. Этот кусок кода я быстро сделал для примера. То есть получается что единственный выход это отслеживать пустая ли будет переменная d или нет? Или например сделать не return, а глобальную переменную и что б она в майне видна была. И в этой ф-ии её наполнять, а в майне уже проверять. Но говорят что лучше глобальные не использовать, типа это не оч хорошо... |