Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
09.03.2015, 14:14
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?
Сообщение от МВА
|
Наверное, omercury не досимулировал программу.
|
Точно!
...но всё равно халтура: если после выключения продолжать удерживать кнопку - светодиод начинает моргать с периодом longkey.
|
|
|
Сказали "Спасибо" omercury
|
|
|
09.03.2015, 14:22
|
|
Гражданин KAZUS.RU
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 842
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
|
Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?
Сообщение от omercury
|
Точно!
...но всё равно халтура: если после выключения продолжать удерживать кнопку - светодиод начинает моргать с периодом longkey.
|
Поэтому я предпочитаю использовать фронты сигналов. Если смотрели мой проект на асме, то должны были заметить это.
PS. Если добавить признак фронта то мигание устраняется.
Последний раз редактировалось МВА; 09.03.2015 в 15:22.
|
|
|
|
09.03.2015, 21:15
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?
Сообщение от МВА
|
PS. Если добавить признак фронта то мигание устраняется.
|
Скорее признак выполненного действия.
|
|
|
Сказали "Спасибо" omercury
|
|
|
09.03.2015, 21:18
|
|
Гражданин KAZUS.RU
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 842
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
|
Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?
Сообщение от omercury
|
Скорее признак выполненного действия.
|
Можно и так сказать, выделение фронта более трудоемкое, а так меньшие изменения в программе
|
|
|
|
10.03.2015, 01:22
|
|
Временная регистрация
Регистрация: 25.06.2013
Сообщений: 58
Сказал спасибо: 25
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?
Просмотрел весь код, но так и не понял, где в нем указана частота контроллера???
Разве в AVR Studio не нужно прописывать её вручную через #define F_CPU???
например так
PHP код:
|
#define F_CPU 9600000 // тактовая частота 9,6 МГц
|
Или она задается, где-то в другом месте?
О вроде бы нашел
И ещё мне непонятно, почему не загорается зеленый кружок возле этой строки (см. рис.) И что эта строка означает???
Последний раз редактировалось prosto_andriy; 10.03.2015 в 02:37.
|
|
|
|
10.03.2015, 02:32
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?
Сообщение от prosto_andriy
|
Или она задается, где-то в другом месте?
|
Меню Project/Configuration Options (1)
Можно поставить любую - от неё зависит только время, которое Студия будет писать при симуляции.
Сообщение от prosto_andriy
|
И ещё мне непонятно, почему не загорается зеленый кружок возле этой строки (см. рис.) И что эта строка означает???
|
Генерация ассемблерного листинга. Необязательная функция. (2)
|
|
|
|
10.03.2015, 02:37
|
|
Временная регистрация
Регистрация: 25.06.2013
Сообщений: 58
Сказал спасибо: 25
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?
Попробовал изменить длительность минимального нажатия кнопки, меняя эту строку
PHP код:
|
TCCR0B=(0‹‹CS02)|(1‹‹CS01)|(1‹‹CS00);//CLK/64
|
на
PHP код:
|
TCCR0B=(1‹‹CS02)|(0‹‹CS01)|(0‹‹CS00);//CLK/256
|
но почему-то ничего не поменялось, а ведь таймер должен по идее считать в 8 раз медленнее, и это значит, что кнопку пришлось бы держать как минимум несколько секунд! но светодиод вкл./выкл. примерно через секунду!
|
|
|
|
10.03.2015, 02:45
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?
Оно и должно сработать через 1,74 секунды, раньше должно было быть через 0,435 секунды.
Сообщение от prosto_andriy
|
в 8 раз медленнее
|
в 4.
|
|
|
|
10.03.2015, 02:52
|
|
Временная регистрация
Регистрация: 25.06.2013
Сообщений: 58
Сказал спасибо: 25
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?
Да, Вы правы!
Попробовал изменить делитель даже так
PHP код:
|
TCCR0B=(1‹‹CS02)|(0‹‹CS01)|(1‹‹CS00);//CLK//1024
|
разницы почти нету!!!
Может я что-то неправильно написал? Эта строка действительно включает пред делитель на 1024???
Наверное у меня неправильно выставлена частота контроллера! Хочу понизить её до минимума! Для этого нужно изменить FUSE биты? Я конечно же воспользуюсь калькулятором фьюзов, но не знаю, какую строку выбрать? Самую нижнюю?
Последний раз редактировалось prosto_andriy; 10.03.2015 в 03:06.
|
|
|
|
10.03.2015, 03:07
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?
Сообщение от prosto_andriy
|
разницы почти нету!!!
|
Очень странно...
Сообщение от prosto_andriy
|
Эта строка действительно включает пред делитель на 1024???
|
именно так.
А Вы её в двух местах программы поменяли?
В принципе в майне инит таймера можно убрать и оставить только в прерывании по внешнему сигналу.
Тогда туда надо перенести строки, относящиеся к TCCR0A, а из майна удалить, оставить только разрешение прерывания по переполнению таймера.
Тогда будет в одном месте.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:21.
|
|