Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
24.02.2015, 01:42
|
|
Временная регистрация
Регистрация: 25.06.2013
Сообщений: 58
Сказал спасибо: 25
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?
Сообщение от alvadep
|
Да вопрошающий, наверно, и сам уже разобрался в чем дело, как-никак, смышленый малый.
|
Наверно кое-какой прогресс уже есть - потому что компилятор выдает уже не три варнинга, а только два и причем оба они указывают на вызов одной и той же функции
Вот отредактированный код, кому не сложно, подскажите пожалуйста, что в нем неправильно!
|
|
|
|
24.02.2015, 03:35
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?
Сообщение от prosto_andriy
|
Но наверно у нее памяти для этого не хватит.
|
Сейчас используется меньше половины.
Сообщение от alvadep
|
Я валяюсь до чего дошел прогресс, уже без СиСИ ни куда.
|
Ох, и влетит же Вам от STM-а !!
Ну да, здесь достаточно МК вообще без памяти, но такие, кажется, все сняты с производства.
Сообщение от МВА
|
Есть проблема: не может контроллер из режима Power Down начать проверять длительность нажатия кнопки. Только прерывание по низкому уровню и достаточное по продолжительности.
|
Нету проблемы.
14CK + 64 ms в самом грустном случае.
Сообщение от МВА
|
Чтоб усыпить - можно сделать все, что хочешь.
|
Усыпляется он там, кстати, криво - нет задержки на отпускание кнопки. Собственно это и имел в виду, когда спрашивал о засыпании.
Сообщение от МВА
|
А разбудить - я не знаю.
|
Нет ничего проще - при входе в прерывание по INT0, тут же его отключить и дальше обрабатывать нажатие как обычно. Перед входом в режим сна снова его включить. При таком подходе можно уже не мониторить постоянно кнопку по таймеру, а просто использовать задержки на подавление дребезга.
|
|
|
|
24.02.2015, 06:07
|
|
Временная регистрация
Регистрация: 25.06.2013
Сообщений: 58
Сказал спасибо: 25
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?
Сообщение от omercury
|
Строка "led_on = 1;" ничего не делает, так как вывод подключен к ШИМ таймера.
|
Переписал код снова , но компилятор опять говорит, что функция BACKLIGHT_on_off; лишняя
У меня такое подозрение, что это из-за ШИМ?
Подскажите пожалуйста, отключен ли он в этом коде?
Других ошибок там вроде бы нету! Код по-мойму должен работать, но он не работает
|
|
|
|
24.02.2015, 09:43
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
|
Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?
Последний раз редактировалось alvadep; 24.02.2015 в 09:56.
|
|
|
|
24.02.2015, 10:09
|
|
Гражданин KAZUS.RU
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 842
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
|
Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?
Сообщение от omercury
|
Нет ничего проще - при входе в прерывание по INT0, тут же его отключить и дальше обрабатывать нажатие как обычно. Перед входом в режим сна снова его включить. При таком подходе можно уже не мониторить постоянно кнопку по таймеру, а просто использовать задержки на подавление дребезга.
|
Всем доброго времени суток.
Спасибо, вчера вечером перед сном я подумал о том же. Но немного не так.
Разбудить - это первое нажатие, а потом в прерывании, и это везде было, запрещаем прерывания по INT0 и сразу проверяем второе нажатие. Если нет, то опять спать, предварительно разрешив INT0.
И у меня вопрос к Prosto Andriy. Зачем такая большая частота? это приводит к тому, что требуется вводить дополнительные делители и оперировать, для задержек, с большими числами типа int. Я понимаю, если бы это были часы, или какой-то измеритель, где надо отсчитывать точные интервалы времени или, на худой конец, асинхронная передача данных. А для светодиода с головой хватит 1 Мгц., по умолчанию. Тогда и программа меньше памяти будет занимать.
Последний раз редактировалось МВА; 24.02.2015 в 13:14.
|
|
|
|
24.02.2015, 10:46
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
|
Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?
Сообщение от МВА
|
Зачем такая большая частота?
|
Заяц увидел верблюда. Глаза вытаращил и кричит: "У тебя же шея кривая!"
А верблюд говорит "А ЧТО У МЕНЯ ПРЯМОЕ?!!"
|
|
|
|
24.02.2015, 21:08
|
|
Временная регистрация
Регистрация: 25.06.2013
Сообщений: 58
Сказал спасибо: 25
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?
Насколько я знаю ATtiny13 может работать даже на 128 KHz!
Для того, чтобы включать/выключать подсветку разумеется бОльшей частоты и не нужно, а вот чтобы регулировать яркость с помощью ШИМ, я честно говоря не знаю
P.S.: Неужели никто не поможет мне "довести до ума" этот код? Уже несколько раз исправлял - всё равно нормально не работает! Помогите пожалуйста!
|
|
|
|
25.02.2015, 04:31
|
|
Временная регистрация
Регистрация: 23.07.2007
Сообщений: 42
Сказал спасибо: 3
Сказали Спасибо 13 раз(а) в 10 сообщении(ях)
|
Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?
посмотрите. очевидные ошибки я прокоментировал. Исправляйте ))
|
|
|
Сказали "Спасибо" Proshha
|
|
|
25.02.2015, 04:58
|
|
Временная регистрация
Регистрация: 23.07.2007
Сообщений: 42
Сказал спасибо: 3
Сказали Спасибо 13 раз(а) в 10 сообщении(ях)
|
Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?
МВА, всё Вы правильно и красиво излагаете. И с арифметикой всё хорошо.
Только изначально допускаете маааленькое упрощение, которое в результате сводит на нет всю арифметику.
Поясню на таких близких Вашему сердцу лампочках ))
Допустим, Вы управляете лампочкой мощностью в 100 ватт. А для управления используете устройство, которое само потребляет 50 ватт. Причём - независимо от того сколько потребляет лампочка в текущем режиме и светит ли она вообще.
И получается, что даже если КПД управления 100%, мы всё равно расходуем от 150 до 50 ватт. Т.е. общий КПД системы регулятор+лампочка не превышает 50% на малых мощностях. И ухудшается по мере увеличения мощности в лампочке, приобретая отрицательное значение на мощностях в лампочке выше 50 ватт.
Создав сами себе трудности в виде отрицательного КПД, мы начинаем их героически преодолевать: ищем способы экономии, погружая управляющий элемент в сон и т.д.
|
|
|
|
25.02.2015, 08:14
|
|
Временная регистрация
Регистрация: 25.06.2013
Сообщений: 58
Сказал спасибо: 25
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Как отследить короткое и продолжительное нажатие кнопки в фонаре?
Сообщение от Proshha
|
посмотрите. очевидные ошибки я прокоментировал. Исправляйте ))
|
Большое спасибо, но я так и не понял нужно ли ещё раз вставлять в код строку
Возможно Вы не заметили, но она там уже есть:
PHP код:
|
// Time 0 overflow interrupt service routine // раз в 8 mS interrupt [TIM0_OVF] void Time0_ovf_isr(void) { KeyEXE = 1; //Разрешение опроса кнопок timCount++; if (timCount › timDiv) { timCount=0; systemClock++; } }
|
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 18:21.
|
|