Помогите пожалуйста разобраться в паре строк кода.
- Войдите на сайт для отправки комментариев
Программа взятая из книги по изучению Ардуино. Мне как новичку не до конца ясно значение нескольких строк. А именно Функция сглаживания дребезга которая ниже описана в коде. Как я понял, мы создали собственную булеву функцию function , и изначально last=false, потом мы считали curren. И если last=false и curren==true, тогда делаем программную задержку 5 мс, и опять считываем, и потом возвращаем значение curren.
ВОПРОСЫ 1)В книге, в обучающих роликах на ютубе на графиках дребезг кнопок на 25 мс, а тут как будто дребезг на 5 мс уже прошел и мы тем самым избежали его программным путем.
2)Куда мы вернули значение curren? function(curren) получается?
3)А last так и остался false?
4)Но если last станет true, тогда не выполниться условие if(last==false&¤==true) при следующем нажатии кнопки.
ЗАРАНЕЕ СПАСИБО)))
ПРОГРАММА
#define LED 13
#define BUTTON 7
bool lastButton=false; //Предыдущее состояние кнопки
bool currenButton=false; //Текущее состояние кнопки
bool LedON=false; //Состояние светодиода
void setup() {
pinMode(LED,OUTPUT);
pinMode(BUTTON,INPUT_PULLUP);
}
/*Функция сглаживания дребезга принимает в качестве аргумента предыдущее состояние кнопки *и выдает фактическое */
bool function(bool last){
bool curren=digitalRead(BUTTON);
if(last==false&¤==true){
delay(5);
curren=digitalRead(BUTTON);
return curren; }
}
void loop() {
currenButton=function(lastButton);
if(lastButton==false&¤Button==true) {
LedON=!LedON; }
lastButton=currenButton;
digitalWrite(LED,LedON); }
полистайте тему
http://arduino.ru/forum/programmirovanie/rabota-s-knopkami-v-pomoshch-no...
отпадёт куча вопросов
непонял вопроса. если контакт кнопки зажат 5мс то кнопка"сработает"
изучай http://arduino.ru/Reference/FunctionDeclaration чтоб глучпые вопросы не задавать, как ты собираешься чтото понять не зная синтаксиса языка?
Вот и отлично вот и разберись как должно быть! Сначала подумай глядя на график напряжения кнопки при дребезге как логически решить эту задачу а там поймёшь и как в программу написать
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukomment...
ВСЕМ ОГРОМНОЕ СПАСИБО! ВСЕ ОТВЕТЫ ПРЯМ В ТОЧКУ)