Таймер с регулируемой задержкой времени
У меня есть светодиодная лента, и каждый светодиод должен включаться последовательно, например этот: [http:// 1.bp.blogspot.com/-CTT6yvYtdos/VihhhBItwjI/AAAAAAAAAvM/q1jbUylMMdM/s400/ezgif.com-video-to-gif.gif][1] Временная задержка между двумя последовательными светодиодами составляет ts, и это время следует регулировать снаружи с помощью кнопочного переключателя. При каждом нажатии кнопки период времени должен увеличиваться на фиксированную величину. Я уже использовал библиотеку timerOne, но она работает только с фиксированной задержкой ts. Как я могу решить эту проблему с ПЕРЕМЕННОЙ задержкой? Я предпочитаю использовать прерывания, а не опрос, так как эта система будет более сложной (будут задействованы другие кнопки и переменные). Спасибо! Фернандо
@fmarengo, 👍0
Обсуждение2 ответа
https://github.com/PaulStoffregen/TimerOne/blob/master/TimerOne.h #L55
Определяет функцию в TimerOne под названием SetPeriod()
. Это изменит период.
Я нашел решение с помощью функции AttachInterrupt (функция, период); внутри цикла() Другими словами, я написал петля(){ Timer1.attachInterrupt(функция,период); // остальная часть кода } где период изменяется внутри ISR, вызываемого при нажатии внешней кнопки. Большое спасибо @jose can uc!!, @fmarengo
Я нашел решение с помощью функции
attachInterrupt(function,period);
внутри
loop()
Другими словами, я написал
loop(){
Timer1.attachInterrupt(function,period);
// остальная часть кода
}
где «период» изменяется внутри ISR, вызываемого при нажатии внешней кнопки. Большое спасибо @jose can uc!!
- Arduino непрерывно считывает значение АЦП с помощью прерывания
- 4-битный счетчик вверх и вниз
- Включить и отключить отдельные прерывания
- Измерить количество циклов и время цифрового входа
- Проблема прерывания библиотеки MPU6050 Arduino Jeff Rowberg
- генерировать два сдвинутых по фазе ШИМ-импульса, запускаемых внешним сигналом с частотным разделением, с помощью Arduino uno?
- Включение прерывания Timer1 CompareA мгновенно вызывает прерывание?
- Таймер Arduino в режиме ctc 4 против 14
Что касается «библиотеки timerOne [...] просто работает с фиксированной задержкой»: что заставляет вас в это верить?, @Edgar Bonet