Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

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

 
Опции темы

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

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

Сообщение от МВА Посмотреть сообщение
Наверное, omercury не досимулировал программу.
Точно!
...но всё равно халтура: если после выключения продолжать удерживать кнопку - светодиод начинает моргать с периодом longkey.
Вложения:
Тип файла: txt Press_but.c.txt (6.0 Кб, 32 просмотров)
Реклама:
omercury вне форума  
Сказали "Спасибо" omercury
prosto_andriy (10.03.2015)
Непрочитано 09.03.2015, 14:22  
МВА
Гражданин KAZUS.RUN
 
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 841
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
МВА на пути к лучшему
По умолчанию Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?

Сообщение от omercury Посмотреть сообщение
Точно!
...но всё равно халтура: если после выключения продолжать удерживать кнопку - светодиод начинает моргать с периодом longkey.
Поэтому я предпочитаю использовать фронты сигналов. Если смотрели мой проект на асме, то должны были заметить это.

PS. Если добавить признак фронта то мигание устраняется.
Вложения:
Тип файла: rar Press_butt_red.rar (39.6 Кб, 26 просмотров)

Последний раз редактировалось МВА; 09.03.2015 в 15:22.
МВА вне форума  
Сказали "Спасибо" МВА
prosto_andriy (10.03.2015)
Непрочитано 09.03.2015, 21:15  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?

Сообщение от МВА Посмотреть сообщение
PS. Если добавить признак фронта то мигание устраняется.
Скорее признак выполненного действия.
omercury вне форума  
Сказали "Спасибо" omercury
prosto_andriy (10.03.2015)
Непрочитано 09.03.2015, 21:18  
МВА
Гражданин KAZUS.RUN
 
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 841
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
МВА на пути к лучшему
По умолчанию Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?

Сообщение от omercury Посмотреть сообщение
Скорее признак выполненного действия.
Можно и так сказать, выделение фронта более трудоемкое, а так меньшие изменения в программе
МВА вне форума  
Непрочитано 10.03.2015, 01:22  
prosto_andriy
Временная регистрация
 
Регистрация: 25.06.2013
Сообщений: 58
Сказал спасибо: 25
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
prosto_andriy на пути к лучшему
По умолчанию Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?

Просмотрел весь код, но так и не понял, где в нем указана частота контроллера???
Разве в AVR Studio не нужно прописывать её вручную через #define F_CPU???
например так
PHP код:
#define F_CPU 9600000 // тактовая частота 9,6 МГц 
Или она задается, где-то в другом месте?

О вроде бы нашел



И ещё мне непонятно, почему не загорается зеленый кружок возле этой строки (см. рис.) И что эта строка означает???
Миниатюры:
Нажмите на изображение для увеличения
Название: avr_build.jpg
Просмотров: 155
Размер:	26.4 Кб
ID:	76590   Нажмите на изображение для увеличения
Название: project_options.jpg
Просмотров: 156
Размер:	52.9 Кб
ID:	76593  

Последний раз редактировалось prosto_andriy; 10.03.2015 в 02:37.
prosto_andriy вне форума  
Непрочитано 10.03.2015, 02:32  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?

Сообщение от prosto_andriy Посмотреть сообщение
Или она задается, где-то в другом месте?
Меню Project/Configuration Options (1)
Можно поставить любую - от неё зависит только время, которое Студия будет писать при симуляции.

Сообщение от prosto_andriy Посмотреть сообщение
И ещё мне непонятно, почему не загорается зеленый кружок возле этой строки (см. рис.) И что эта строка означает???
Генерация ассемблерного листинга. Необязательная функция. (2)
Миниатюры:
Нажмите на изображение для увеличения
Название: Image1.jpg
Просмотров: 18
Размер:	75.2 Кб
ID:	76592  
omercury вне форума  
Непрочитано 10.03.2015, 02:37  
prosto_andriy
Временная регистрация
 
Регистрация: 25.06.2013
Сообщений: 58
Сказал спасибо: 25
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
prosto_andriy на пути к лучшему
По умолчанию Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?

Попробовал изменить длительность минимального нажатия кнопки, меняя эту строку
PHP код:
TCCR0B=(0‹‹CS02)|(1‹‹CS01)|(1‹‹CS00);//CLK/64 
на
PHP код:
TCCR0B=(1‹‹CS02)|(0‹‹CS01)|(0‹‹CS00);//CLK/256 
но почему-то ничего не поменялось, а ведь таймер должен по идее считать в 8 раз медленнее, и это значит, что кнопку пришлось бы держать как минимум несколько секунд! но светодиод вкл./выкл. примерно через секунду!
prosto_andriy вне форума  
Непрочитано 10.03.2015, 02:45  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?

Оно и должно сработать через 1,74 секунды, раньше должно было быть через 0,435 секунды.

Сообщение от prosto_andriy Посмотреть сообщение
в 8 раз медленнее
в 4.
omercury вне форума  
Непрочитано 10.03.2015, 02:52  
prosto_andriy
Временная регистрация
 
Регистрация: 25.06.2013
Сообщений: 58
Сказал спасибо: 25
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
prosto_andriy на пути к лучшему
По умолчанию Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?

Да, Вы правы!

Попробовал изменить делитель даже так
PHP код:
TCCR0B=(1‹‹CS02)|(0‹‹CS01)|(1‹‹CS00);//CLK//1024 
разницы почти нету!!!
Может я что-то неправильно написал? Эта строка действительно включает пред делитель на 1024???
Наверное у меня неправильно выставлена частота контроллера! Хочу понизить её до минимума! Для этого нужно изменить FUSE биты? Я конечно же воспользуюсь калькулятором фьюзов, но не знаю, какую строку выбрать? Самую нижнюю?
Миниатюры:
Нажмите на изображение для увеличения
Название: ATtiny13_fuse_bits.jpg
Просмотров: 153
Размер:	63.0 Кб
ID:	76594  

Последний раз редактировалось prosto_andriy; 10.03.2015 в 03:06.
prosto_andriy вне форума  
Непрочитано 10.03.2015, 03:07  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?

Сообщение от prosto_andriy Посмотреть сообщение
разницы почти нету!!!
Очень странно...
Сообщение от prosto_andriy Посмотреть сообщение
Эта строка действительно включает пред делитель на 1024???
именно так.


А Вы её в двух местах программы поменяли?
В принципе в майне инит таймера можно убрать и оставить только в прерывании по внешнему сигналу.
Тогда туда надо перенести строки, относящиеся к TCCR0A, а из майна удалить, оставить только разрешение прерывания по переполнению таймера.
Тогда будет в одном месте.
omercury вне форума  
 
Опции темы

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

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, время: 16:45.


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