Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
12.04.2011, 00:27
|
|
Гражданин KAZUS.RU
Регистрация: 09.12.2007
Сообщений: 536
Сказал спасибо: 57
Сказали Спасибо 53 раз(а) в 45 сообщении(ях)
|
Re: Отследить короткое и продолжительное нажатие кнопки в фонаре. Как???
Сообщение от omercury
|
Имелся в виду цифровой компаратор сравнения внутри модуля таймера в режиме PWM.
|
надеюсь высплюсь и завтра смогу понять эту фразу
аналогичный алгоритм у мня реализован, только плавное регулирование достало быстро, сделал 5%, 30%, 60%, 100%
5% на случай если батарейка умерла напрочь а светить хоть как то надо
|
|
|
|
12.04.2011, 00:45
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Отследить короткое и продолжительное нажатие кнопки в фонаре. Как???
Всё точно также, как в аналоговом компараторе. Возьмём к примеру 8ми битный таймер. Счётчик таймера считает от "0" до "255" - это "пила" генератора - 1 вход компаратора. Есть регистр сравнения - опорное напряжение - 2 вход компаратора. Пока в счётчике таймера значение меньше опоры - на выходе "0". Как только цифры сравнялись - компаратор переключается - на выходе устанавливается "1". Когда счётчик таймера перекидывается из 255 в 0 - на выходе снова "0". Цифровой ШИМ.
|
|
|
|
13.04.2011, 11:38
|
|
Временная регистрация
Регистрация: 11.04.2011
Сообщений: 54
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Отследить короткое и продолжительное нажатие кнопки в фонаре. Как???
Сообщение от omercury
|
Вот именно. Пока статус не установлен, изменить статус невозможно. Замкнутый круг.
|
Как это не установлен??? Он при запуске устанавливается в ноль
Код:
|
// глобальная переменная
volatile bit state = 0; |
|
|
|
|
13.04.2011, 16:19
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Отследить короткое и продолжительное нажатие кнопки в фонаре. Как???
Сообщение от poligon_85
|
Как это не установлен??? Он при запуске устанавливается в ноль
Код:
|
// глобальная переменная
volatile bit state = 0; |
|
Он не установлен - он сброшен
И как по-Вашему должно выполниться условие
Код:
|
if (state) { // и проверяем условие короткого нажатия |
?
|
|
|
|
13.04.2011, 17:15
|
|
Прописка
Регистрация: 25.08.2007
Сообщений: 193
Сказал спасибо: 11
Сказали Спасибо 57 раз(а) в 33 сообщении(ях)
|
Re: Отследить короткое и продолжительное нажатие кнопки в фонаре. Как???
To poligon_85, держите. Будут вопросы, задавайте. По Вашему тех. заданию, только яркость регулируется через максимум в ноль за время ~2 сек. Atmega8, Proteus 7.7 SP2.
Последний раз редактировалось oleg_harp; 13.04.2011 в 23:13.
Причина: Убрал в исходнике небольшой не принципиальный косячок
|
|
|
|
13.04.2011, 18:05
|
|
Гражданин KAZUS.RU
Регистрация: 09.12.2007
Сообщений: 536
Сказал спасибо: 57
Сказали Спасибо 53 раз(а) в 45 сообщении(ях)
|
Re: Отследить короткое и продолжительное нажатие кнопки в фонаре. Как???
Сообщение от omercury
|
Всё точно также, как в аналоговом компараторе. Возьмём к примеру 8ми битный таймер. Счётчик таймера считает от "0" до "255" - это "пила" генератора - 1 вход компаратора. Есть регистр сравнения - опорное напряжение - 2 вход компаратора. Пока в счётчике таймера значение меньше опоры - на выходе "0". Как только цифры сравнялись - компаратор переключается - на выходе устанавливается "1". Когда счётчик таймера перекидывается из 255 в 0 - на выходе снова "0". Цифровой ШИМ.
|
сразу видно кто на кого учился
вы видимо по части электроники, поэтому везде кажуться компараторы
а я по части программирования и сетей, мне в программах кажуться только программы, без компараторов
но суть понял
|
|
|
|
13.04.2011, 20:28
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Отследить короткое и продолжительное нажатие кнопки в фонаре. Как???
Сообщение от igel_izh2126
|
везде кажуться компараторы
|
Ну тогда организуйте программный ШИМ без аппаратного компаратора - получится с программным, но компаратором!
от слова "compare" - сравнение.
Сообщение от igel_izh2126
|
но суть понял
|
Это главное.
Просто помню недавно Вы ковырялись с ОУ.
Последний раз редактировалось omercury; 13.04.2011 в 20:31.
|
|
|
|
14.04.2011, 13:24
|
|
Временная регистрация
Регистрация: 11.04.2011
Сообщений: 54
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Отследить короткое и продолжительное нажатие кнопки в фонаре. Как???
Сообщение от omercury
|
Он не установлен - он сброшен
И как по-Вашему должно выполниться условие
Код:
|
if (state) { // и проверяем условие короткого нажатия |
?
|
Если state == 1 то делаем одно, иначе, т.е. если state == 0 (или не равно 1) то другое.
Как раз под иначе у нас и попадает
Код:
|
// глобальная переменная
volatile bit state = 0; |
Почему это не правильно то????? Хоть убейте не понимаю
Последний раз редактировалось poligon_85; 14.04.2011 в 13:35.
|
|
|
|
14.04.2011, 13:42
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Отследить короткое и продолжительное нажатие кнопки в фонаре. Как???
Хороший тон программирования - не использовать длинных операций в прерываниях. Лучше всего быстро выполнить какое-нибудь сравнение и поднять флаг. В основном цикле опросить флаг, сбросить и выполнить задачу. Когда у вас будет три десятка задач, вы с ума сойдете с этими прерываниями, которые найнут перекрывать друг друга.
|
|
|
|
14.04.2011, 14:03
|
|
Почётный гражданин KAZUS.RU
Регистрация: 28.02.2010
Сообщений: 2,297
Сказал спасибо: 53
Сказали Спасибо 461 раз(а) в 392 сообщении(ях)
|
Re: Отследить короткое и продолжительное нажатие кнопки в фонаре. Как???
Но приоритеты останутся, а вот с ума сойти - это ТОЧНО!(насчёт 3 десятка- не пробовал, и с тремя можно на стенку полезьть) (оффтоп)
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 14:27.
|
|