Ардуино Уно Таймер
- Войдите на сайт для отправки комментариев
Чт, 02/06/2016 - 16:40
Привет всем.
С недавнего времени открыл для себя Ардуино и выходя за рамки стандартных примеров столкнулся со следующей проблемой:
Таймер1 (16 Бит) после 8.38 секунд начинает счет с нуля. Есть ли способы обойти эту проблему (расширить диапазон до 20-30 секунд) ?
Заранее спасибо
Привет всем.
С недавнего времени открыл для себя Ардуино и выходя за рамки стандартных примеров столкнулся со следующей проблемой:
Таймер1 (16 Бит) после 8.38 секунд начинает счет с нуля. Есть ли способы обойти эту проблему (расширить диапазон до 20-30 секунд) ?
Заранее спасибо
Вы сами так настроили (ну или тот, чей скетч Вы используете).
1. Скетч в студию
2. Описание задачи (чего нужно-то?) тоже в студию.
Таймер должен генерировать прерывание при переполнении. Изменяйте значение переменной в соотвествующем векторе прерывания. Каждая единица переменной будет соотвествовать полным 16 битам таймера.
Таймер1 (16 Бит) после 8.38 секунд начинает счет с нуля.
А по идее при тактовой частоте 16МГц вообще дожен переполнятся за 4,19 секунд, даже если взять самый большой прескалер (1024): 16000000/1024=15625 - частота, поступающая на таймер. Максимально возможное значение 16-битного таймера 65535, итого получаем: 65535/15625=4,19 секунды.
Есть ли способы обойти эту проблему (расширить диапазон до 20-30 секунд) ?
Таймер считать дольше физически не может. Выход - добавить переменную, которую инкрементировать таймером и ориентироваться уже на неё при подсчете времени. Ну и естественно настроить таймер на переполнение или сравнение с ровным количеством секунд/миллисекунд (для удобства).
Спасибо за ответы!
Задумка следующая: фиксируется время между нажатием и отпусканием кнопки. На этот интервал ставится таймер, который попеременно переключает 2 светодиода (LEFT_PIN, RIGHT_PIN). Решено прерыванием. Кажется работает, только вот таймер подкачал.
Логика:
Кнопка нажата - включается левый светодиод и фиксируется время нажатия. Кнопка отпущена - выключается левый светодиод и включается правый, фиксируется время и интервал и ставится таймер, который с этого времени перенимает переключеие светодиодов до следующего нажатия кнопки.
Таймер должен генерировать прерывание при переполнении. Изменяйте значение переменной в соотвествующем векторе прерывания. Каждая единица переменной будет соотвествовать полным 16 битам таймера.
А это идея, не додумался, спасибо
@Jeka_M
Да, я того-же мнения. Может быть особенности библиотеки "TimerOne"? Хотя и здесь тоже пишут, что 8.38 секунды. Я что-то не понимаю
Привет всем, помогите со скетчем вот такого таймера.
таймер с выдержкой в 12-13 секунд по такому принципу:
Включаю устройство и оно ждет команды, допустим нажимаю на кнопку и через 12-13 секунд оно издает звуковой сигнал допустим в течении 2 сек. и опять ждет команды. Нажал еще раз на кнопку оно опять через 12 сек пищит в течении 2х сек и опять ждет команды.
Думаю что тут совсем всё просто, но пока не шибко силен в программировании.
Заранее благодарен.
А сами вы что-то написали? Рекомендую заглянуть в приколоченную песочницу, первый пост. Там есть рекомендации. Хотя и неудобно, с трехлетним стажем, туда посылать.
Извеняюсь за флуд в теме, но дата регистрации у меня не совпадает со сроком стажа. (
Всё было заброшено с пополнением в семье. ))
Так-что сейчас можно сказать у меня всё с нуля.
Сейчас всё пробую заного, что-то вспоминаю, где-то читаю, где-то прошу помощи. )
Вы заглянули, куда рекомендовал? С нынешней постановкой вопроса, только в "Ищу исполнителя", там за несколько тыщь рупий напишут, могут даже на чистом Си.))))
ОК, т.к. программирование в песочнице еще не написал, немного помогу.
1. При разработке алгоритма, нет слова "допустим". Есть четкие критерии: когда, сколько, почему.
2. Устранить неопределенные ситуации. Ваша программа может состоять из одного ифа и двух делеев, боюсь это не то, что вы хотели. Внести в алгоритм, что делать, если кнопка нажата еще раз во время ожидания, во время сигнала, совсем не отпустилась и т.д.
3. Подключение кнопок в "Работа с кнопками.....", первая страница.
4. Отработка таймингов на неблокирующем "Блинк без делей".
5. Про конченные автоматы и классы, не буду, Винни пускай рассказывает.
1. При разработке алгоритма, нет слова "допустим". Есть четкие критерии: когда, сколько, почему.
Алгоритм у меня получается такой.
1) нажимаю на кнопку и тут же отпускаю.
2) ардуинка выдерживает тринадцать секунд
3) По истечению тринадцати секунд, включается пассивный buzzer на две секунды.
4) ардуинка возвращается в режим ожидания нажатия кнопки.
Такая вотпростая работа. )
Кухонный таймер в Икее приобретите (вот это простая работа).
Кухонный таймер в Икее приобретите (вот это простая работа).
Интересное предложение для ресурса где разговаривают про Arduino. )))
Такая вотпростая работа. )
Сами напросились.
Интересное предложение для ресурса где разговаривают про Arduino. )))
Чем плохо? Корпусировано, отлажено - бери и используй. Или, если сайт про ардуино, то любой мигающий сваетодиод или NE555 ардуиной заменять надо, токо чтобы было "по форме"?
Не, ведь красиво, вкорячить сторублевый чип, обвязать кварцем, добавить БП, я бы еще кнопку на аналоговый пин повесил, с зазором в пару единиц, тогда можно будет полностью использовать мощь Aref. И вся х-ня, чтобы пискнуть при нажатии.))))
И на форуме еще полдня попереписываться...
И на форуме еще полдня попереписываться...
Да с этим всё нормально. )) Не думаю что пол дня переписки, вызавет какие либо заболевания. )))
В общем чего-то почитал, чего-то наваял.
Поставил антидребезг.
Вот что у меня получилось.
из команды if (!digitalRead(switchPin)) сделал if (digitalRead(switchPin)) иначе всё было зациклено.
Только не надо смеяться)))) так сразу всё вспомнить, а тем более научиться мне не под силу.
Работает антидребезг?
Поставил антидребезг.
Зря, это мегакод, антидребезг заложен изначально и работает на 147%.)))
1) нажимаю на кнопку и тут же отпускаю.
А чё делать, если юзверь не отпустил? Активировать кнопку у него в стуле?
2) ардуинка выдерживает тринадцать секунд
А чё делать, если в это время ещё раз нажали кнопку? А два раза? А десять раз?
3) По истечению тринадцати секунд, включается пассивный buzzer на две секунды.
А если в эти две секунды кнопку опять клацают?
4) ардуинка возвращается в режим ожидания нажатия кнопки.
А если её всё ещё не отпустили и она таки нажата? Это как? Нещитова?
Работает антидребезг?
Пока на эмуляторе, под рукой ардуинки нет. Всё дома. В понедельник принесу на работу опробую.
чего-то наваял.
Темы "12-13 сек" и "на 2-3 сек" не раскрыты.
Подсказка - для этого есть функция random.
чего-то наваял.
Темы "12-13 сек" и "на 2-3 сек" не раскрыты.
Подсказка - для этого есть функция random.
13 сек ожидания, 2 секунды работы после того, как нажали и отпустили кнопку.
Длительное время ее держать ни кто не будет.
Задача под одного конечного пользователя, которому можно рассказать нюансы работы. На массовость задумка не предполагается.
Сделал бы плохо - разговаривал с ALEGYR, а так - простой предупредительный...
Да, и строки 27,36, это для закрепления результата?
13 сек ожидания, 2 секунды работы
Чёт ты на ходу показания меняешь. Раньше было
таймер с выдержкой в 12-13 секунд
Да, и строки 27,36, это для закрепления результата?
Не, это чтобы антидребезг работал.
13 сек ожидания, 2 секунды работы
Чёт ты на ходу показания меняешь. Раньше было
таймер с выдержкой в 12-13 секунд
Лана, не наезжай, вот окончательное ТЗ. Сижу, баксики жду.)))
13 сек ожидания, 2 секунды работы
Чёт ты на ходу показания меняешь. Раньше было
таймер с выдержкой в 12-13 секунд
Работает антидребезг?
Конечно, работает!
1. Функция для подавления дребезга в коде присутствует? Да!
2. Устройство функционирует безо всякого дребезга? Да!
Всё! Смело вставляем "подавление дребезга" в смету и выставляем счёт заказчику. Учитесь!
Не, не меняю, корректирую то, что ранее неверно выразил. Изначально предполагал "К примеру 12 или 13", а написал так, что другим непонятно.
Вам бы в правительство одной страны пойти работать. Там тоже сначала неверно навыражают, а потом корректируют так, что кладбище первее пенсии вырисовывается.
Всё! Смело вставляем "подавление дребезга" в смету и выставляем счёт заказчику. Учитесь!
Для этого и спрашивал... а то я всё недокладываю в скетчи, забочусь о бюджете :(
Мне бы еще местный менталитет понять и освоить. А то иногда страшновато становится выражаться. ))))
Мне бы еще местный менталитет понять и освоить. А то иногда страшновато становится выражаться. ))))
Так чего его понимать? Я вам написал х-ню, которая делает то, что вы озвучили в ТЗ. Антидребезг в таком коде идет бонусом: как только поймается первый блымк, МК превращается в кирпич на период заданный делеями. Все.))))
1. При разработке алгоритма, нет слова "допустим". Есть четкие критерии: когда, сколько, почему.
Алгоритм у меня получается такой.
1) нажимаю на кнопку и тут же отпускаю.
2) ардуинка выдерживает тринадцать секунд
3) По истечению тринадцати секунд, включается пассивный buzzer на две секунды.
4) ардуинка возвращается в режим ожидания нажатия кнопки.
Такая вотпростая работа. )
я тут недавно зуммер к действующей конструкции прикручивал, использовал таймер, где-то код лежит, показать?
Мне бы еще местный менталитет понять и освоить. А то иногда страшновато становится выражаться. ))))
...с этим без 100 грамм не одолеть )))
я тут недавно зуммер к действующей конструкции прикручивал, использовал таймер, где-то код лежит, показать?
Буду признателен.
Ну, вот, взял и раскрыл все секреты мастерства :(
...с этим без 100 грамм не одолеть )))
Боюсь, 100 грамм - маловато будет.
Ну, вот, взял и раскрыл все секреты мастерства :(
Так тонкий расчет, с дребезгом уже за дэнги. )))
Блин, хорошая пятничная тема :)
...с этим без 100 грамм не одолеть )))
Боюсь, 100 грамм - маловато будет.
С Вашими темпами в эфире не с кем работать будет )))
...с этим без 100 грамм не одолеть )))
Боюсь, 100 грамм - маловато будет.
С Вашими темпами в эфире не с кем работать будет )))
С удовольствием бы пообщался на тему Ардуинки в эфире, вот только на данный момент у меня двойка ))
КВ отцу в деревню отдал. )
К стати как у вас с двойкой? У нас она совсем мертва. (
...с этим без 100 грамм не одолеть )))
Боюсь, 100 грамм - маловато будет.
С Вашими темпами в эфире не с кем работать будет )))
С удовольствием бы пообщался на тему Ардуинки в эфире, вот только на данный момент у меня двойка ))
КВ отцу в деревню отдал. )
К стати как у вас с двойкой? У нас она совсем мертва. (
Постоянно шуршит, репитер работает превосходно, установлен на высоте 1100 так что по прохождению даже Украина входит, раньше, когда SDR был в Ростовской области можно было себя послушать через репитер в Ростове (500 км)
Блин, хорошая пятничная тема :)
Ну да, хоть срача нет.)))