Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Как отследить короткое и продолжительное нажатие кнопки в фонаре?

Непрочитано 15.04.2011, 20:24  
poligon_85
Временная регистрация
 
Аватар для poligon_85
 
Регистрация: 11.04.2011
Сообщений: 54
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
poligon_85 на пути к лучшему
Вопрос Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?

Кнопка герконовая будет.

Дело не в языке. Я в алгоритм никак не въеду.
Реклама:
poligon_85 вне форума  
Непрочитано 15.04.2011, 20:27  
oleg_harp
Прописка
 
Регистрация: 25.08.2007
Сообщений: 193
Сказал спасибо: 11
Сказали Спасибо 57 раз(а) в 33 сообщении(ях)
oleg_harp на пути к лучшему
По умолчанию Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?

Сообщение от Easyrider83 Посмотреть сообщение
Дребезг устранять програмно - очень много кода выйдет.
Хороший прикол!
oleg_harp вне форума  
Непрочитано 15.04.2011, 20:30  
urry
Почётный гражданин KAZUS.RUN
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 107 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?

Придумайте свой.
Ваш предыдущий код и должен работать именно так, как Вы описали.
Как бы я написал Ваш код - именно по инвертированию.
Ни в каких симуляторах не проверял, возможны ошибки.
PHP код:
{                                
    TCNT0=0xB2;                      
    if (!button)// если кнопка нажата
    {
        if(!first) // и флаг сброшен
        {
            first=1; // ставим флаг счета
            timer_count=0; // обнуляем счетчик 
        }
        else
        {
            timer_count++; // увеличиваем счетчик антидребезга
            if (timer_count › MAX_ANTI)//проверяем его
            {
                PORTB.3^=1;
                first=0; // сбрасываем флаг
            }
        }
    }
    else // кнопка отжата
    {    
        if(first) // но флаг взведен
        {
            if(timer_count)timer_count--;// уменьшаем счетчик антидребезга
            else first=0;     // если можно, если нельзя сбрасываем флаг 
        }        
    }
}
//----------------------------------------- 
__________________
warez
urry вне форума  
Непрочитано 15.04.2011, 20:33  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?

Сообщение от Easyrider83 Посмотреть сообщение
Просто глубое отвращение как к самим камням
И совершенно напрасно. Споров заводить не собираюсь, только скажу, что каждый камень хорош по-своему. Подавление дребезга программно - нормальная практика. Подавлять его ёмкостями как раз непрофессионально. А дребезг имеет все, чья масса отлична от нуля. Без него, наверное, только оптика и магнитные датчики работают.
poligon_85, если всё ещё интересно, объясню, почему так, а не иначе.
omercury вне форума  
Непрочитано 15.04.2011, 20:35  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?

Сообщение от urry Посмотреть сообщение
Ваш предыдущий код и должен работать именно так, как Вы описали.
urry, Вы кому это?
omercury вне форума  
Непрочитано 15.04.2011, 20:38  
urry
Почётный гражданин KAZUS.RUN
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 107 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?

poligon_85, его предыдущий код.
__________________
warez
urry вне форума  
Непрочитано 15.04.2011, 20:41  
poligon_85
Временная регистрация
 
Аватар для poligon_85
 
Регистрация: 11.04.2011
Сообщений: 54
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
poligon_85 на пути к лучшему
По умолчанию Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?

urry, не работает ваш код. На момент нажатия светодиод загорается, отпускаешь - гаснет. Или срабатывает всё через раз. При удержании моргает. MAX_ANTI сделал 9, т.е. время антидребезга 100 мс.

P.S. Я хочу сделать таким же образом, т.е. понимаю приведенный вами алгоритм, но не понимаю почему он не работает.

Последний раз редактировалось poligon_85; 15.04.2011 в 20:46.
poligon_85 вне форума  
Непрочитано 15.04.2011, 20:51  
oleg_harp
Прописка
 
Регистрация: 25.08.2007
Сообщений: 193
Сказал спасибо: 11
Сказали Спасибо 57 раз(а) в 33 сообщении(ях)
oleg_harp на пути к лучшему
По умолчанию Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?

Сообщение от poligon_85 Посмотреть сообщение
MAX_ANTI сделал 9, т.е. время антидребезга 100 мс.
poligon_85, Вы нас запутываете. Вы в реале проверяете или в Proteus? В Proteus у кнопок нет никакого дребезга.
oleg_harp вне форума  
Непрочитано 15.04.2011, 20:57  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?

Сообщение от Easyrider83 Посмотреть сообщение
Да есть у меня все для работы в АВР. Проблема-то не в этом. Просто глубое отвращение как к самим камням, так и к тем людям, которые писали документации.
Камни как камни, вы их просто грызть не умеете...
Цитата:
Дребезг устранять програмно - очень много кода выйдет. Не мучайтесь, поставьте конденсатор. К тому же, мембранные кнопки с щелчком дребезга почти не имеют. Не знаю, как их надо нажимать, чтобы они дребезжали.
Не давайте дурных советов...
st_1 вне форума  
Непрочитано 15.04.2011, 21:02  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?

2poligon_85
Вас переклинило... вы зациклились, при таком раскладе в голову ничего не полезет...
Займитесь чем-то другим, переключитесь... отдохните...
st_1 вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Книги dosikus Электронная библиотека 11242 29.12.2015 23:45
Как правильно отследить импульс sdsrem Микроконтроллеры, АЦП, память и т.д 8 17.08.2010 21:28
[Решено] Третье Послание Человечеству lelkanet Отвлекитесь, эмбеддеры! 201 06.01.2010 00:33


Часовой пояс GMT +4, время: 13:17.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.