динамическая индикация
- Войдите на сайт для отправки комментариев
Пт, 22/11/2019 - 14:05
Уважаемое сообщество кто подскажет как переделать функцию Showdigits с использованием millis а не delay.
byte digits[10]={ B01111110,//* 0 B00110000,//* 1 B01101101,//* 2 B01111001,//* 3 B00110011,//* 4 B01011011,//* 5 B01011111,//* 6 B01110000,//* 7 B01111111,//* 8 B01111011,//* 9 }; int pins[7]={8,7,6,5,4,3,2};//*{2,3,4,5,6,7,8}; int dig[2]={11,12}; void setup() { for(int i=0;i<7;i++) pinMode(pins[i],OUTPUT); for(int i=0;i<2;i++) {pinMode(dig[i],OUTPUT); digitalWrite(dig[i],LOW); } } void loop() { showdigits(32); } void showdigits(int val){ int d0 = val%10; int d1 = val/10; digitalWrite(dig[0],HIGH); for (int i=0; i<7;i++){ if(bitRead(digits[d0],i)==LOW) // зажечь сегмент digitalWrite(pins[i],HIGH); else // потушить сегмент digitalWrite(pins[i],LOW); } delay(15); digitalWrite(dig[0],LOW); digitalWrite(dig[1],HIGH); for (int i=0; i<7;i++){ if(bitRead(digits[d1],i)==LOW) // зажечь сегмент digitalWrite(pins[i],HIGH); else // потушить сегмент digitalWrite(pins[i],LOW); } delay(15); digitalWrite(dig[1],LOW); }
показали первую цифру - вышли из функции на 15мс, потом снова зашли и показали вторую цифру...
и так по кругу
как организовать выход из функции, я еще этого не знаю
как организовать выход из функции, я еще этого не знаю
выход происходит либо когда функция достигла последнего оператора, либо по оператору return
В вашем случае можно написать и так и эдак
Аха, следующий вопрос - а как узнать, что прошло 15мС?))))
вопросы вы интересные задаете, да только ответов нет. Переделал тут чутка может теперь кто подскажет как заменить на миллис? Познания в ардуино 2 дня просьба сильно не пинать.
неправильно переделали, так работать не будет
вы не поверите но работает.Подскажите как убрать теперь delay.
вы не поверите но работает.
да, согласен, посмотрел невнимательно
Подскажите как убрать теперь delay.
посмотрите пример "блинк без делай"
вы имеете ввиду сделать так
По устоявшейся традиции, от себя, Лешака порекомендую.
вы имеете ввиду сделать так
нет, в таком случае у вас условие в строке 5 не сработает никогда
Я бы сделал только одно условие с миллис. а уже в нем запускал то одну цифру. то другу.
все закипел. ни хрена не понял. есть условие миллис подождали 5 мс и высветили одну цифру, как мне опять подождать еще 5 мс и высветить вторую
есть еще одна извращенская комбинация, но както не изящно
вы имеете ввиду сделать так
нет, в таком случае у вас условие в строке 5 не сработает никогда
Я бы сделал только одно условие с миллис. а уже в нем запускал то одну цифру. то другу.
кстати так работает я фиг знает по чему, но сильно видно мерцание
вот так попробуйте
flag должен быть глобальной или статик переменной
вот так попробуйте
flag должен быть глобальной или статик переменной
таким образом отражаются кракозяблы на индикаторах
таким образом отражаются кракозяблы на индикаторах
что-то тут не так, если работал код #5. то и этот должен
Весь код покажите
Спасибо большое все работает это два проводка отошло. Индикация работает теперь пойду разбираться с нтс. Если бы еще Гуру ткнули носом где почитать про 2 кнопки к одному аналоговому входу почитать как это обрабатывать, было бы супер.
В теме - работа с кнопками. Ток не постите туда ничего, усе равно потру.