класс является продолжением сериала "класс титановый велосипед ..." (см. "Поиск" по форуму)
класс можно использовать отдельно или как дополнение для "класс титановый велосипед для delay без delay()" - т.е. теперь мы можем устанавливать период генерации регулярных событий как производную от периода нерегулярных событий.
примеры:
- нажатием кнопки с неким интервалом можно задать интервал блинка светодиода равный двум последним нажатиям кнопки.
- что-то происходит чаще чем 1 секунда, то делаем одно. что-то происходит реже или равно 1 секунде, то делаем другое.
- что-то не успевает произойти, автоматически подкручиваем нужные переменные, что бы успевало.
- ведём статистику, записывая длительность периодов нерегулярных событий куда-то.
- отладка скетча: смотрим, на какое время превращаем контроллер в кирпич гениальным и быстрым кодом.
пример ползания класс титановый велосипед StopWatch.
#include <class_BUTTON.h>
#include <class_noDELAY.h>
#include <class_StopWatch.h>
BUTTON BUTTON_01(3);
StopWatch StopWatch_01;
noDELAY noDELAY_01;
void setup () {
pinMode(14, OUTPUT); // LED_01
digitalWrite(14, 1);
pinMode(15, OUTPUT); // LED_02
digitalWrite(15, 1);
noDELAY_01.start();
}
void loop() {
BUTTON_01.read();
noDELAY_01.read(StopWatch_01.interval); // событие генерится с периодом подсчитанным StopWatch.
StopWatch_01.read(BUTTON_01.click_down); // подсчёт количества миллисекунд между двумя последними нажатиями кнопки.
if (noDELAY_01.tick) {digitalWrite(14, !digitalRead(14));} // блинк с периодом двух последних нажатий кнопки.
if (StopWatch_01.interval <= 1000) {digitalWrite(15, 0);} // кнопка была нажата чаще или равно 1 раз в секунду.
if (StopWatch_01.interval > 1000) {digitalWrite(15, 1);} // кнопка была нажата реже, чем 1 раз в секунду.
}
в конструкции StopWatch_01.read(BUTTON_01.click_down); может присутствовать не одна булева переменная (BUTTON_01.click_down), но и логическая сумма переменных и(или) условий.
например: нажата кнопка и пин светодиода в логической единице или напряжение на аналоговом пине больше 506.
т.е. StopWatch_01.read((BUTTON_01.click_down && digitalRead(14)) || (analogRead(0) > 506)); будет считать миллисекунды между возможными комбинациями нескольких событий: нажатие кнопки, при потушенном светодиоде или когда на аналоговом пине напряжение больше 506.
Клапауций 232, хотел спросить. У вас очень крутой код:)
Можно ли подключить тактовую кнопку на аналоговый вывод?
Вопрос по вашему коду. Подскажите пожалуйста, на какие строки мне необходимо обратить внимаение чтобы выполнение/завершение программного кода выполнялось по нажатию тактовой кнопки?
Клапауций 232, хотел спросить. У вас очень крутой код:)
Можно ли подключить тактовую кнопку на аналоговый вывод?
Вопрос по вашему коду. Подскажите пожалуйста, на какие строки мне необходимо обратить внимаение чтобы выполнение/завершение программного кода выполнялось по нажатию тактовой кнопки?
класс титановый велосипед для тактовой кнопки.
класс титановый велосипед для delay без delay().
О, Господи !
О, Господи !
я тебя слушаю, раб мой.
кто тебя обидел?
Почему титановый?
Почему титановый?
потому, что титановый велосипед классный.
карбон - гавно.
Почему тогда "ползания"?
Почему тогда "ползания"?
потому, что "ползатели".
Клапауций 232, хотел спросить. У вас очень крутой код:)
Можно ли подключить тактовую кнопку на аналоговый вывод?
Вопрос по вашему коду. Подскажите пожалуйста, на какие строки мне необходимо обратить внимаение чтобы выполнение/завершение программного кода выполнялось по нажатию тактовой кнопки?
Заранее спасибо!
Клапауций 232, хотел спросить. У вас очень крутой код:)
Можно ли подключить тактовую кнопку на аналоговый вывод?
Вопрос по вашему коду. Подскажите пожалуйста, на какие строки мне необходимо обратить внимаение чтобы выполнение/завершение программного кода выполнялось по нажатию тактовой кнопки?
Заранее спасибо!
ответил здесь #594