Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Включение/ выключение прибора как мобильного телефона

Ср авг 22, 2018 20:09:49

Здравствуйте, недавно написал програмку для прибора с батарейным питанием. Контроллер mega168. Включается и выключается он с помощью тумблера. Хотелось бы при длительном нажатии на кнопку уволить мк в спящий режим, и при длительном нажатии будить его,точно так же как и в телефоне. Подскажите как это грамотно реализовать?

Re: Включение/ выключение прибора как мобильного телефона

Ср авг 22, 2018 20:18:28

сие вполне разумно дерза1
но тумблеру там где есть мк не место...

Re: Включение/ выключение прибора как мобильного телефона

Ср авг 22, 2018 20:19:31

варианты:
1) кнопку садить на пин с внешним прерыввнием, прерывание настраивать на низкий уровень и настроить глубокий спящий режим.
2) иногда просыпаться от собаки и проверять кнопку из глубокого спящего режима.
3) использовать неглубокий сон, при этом почти вся периферия остается в работе - кнопку можно опрашивать по таймеру или по прерыванию по фронту/спаду (энергопотребление будет выше).
4) сделать полное самоотключение (управляемый кнопкой и контроллером ключ в питании) контроллер сохраняет параметры в еепром и самовырубается, включается кнопкой.

Re: Включение/ выключение прибора как мобильного телефона

Ср авг 22, 2018 20:54:23

По первому варианту. При удерживание кнопки тикает переменная, когда она достигнет какого то значения, уснуть. А как проснутся при удержании? По четвертому варианту можно взглянуть на схему?

Добавлено after 1 minute 44 seconds:
Можно и триггер сделать по питанию, но больше интересен программный вариант

Добавлено after 2 minutes 58 seconds:
Или например при удержании кнопки заряжать конденсатор через резистор,и при достижении 5 вольт будет подан сигнал на прерывание,и разбудит мк

Re: Включение/ выключение прибора как мобильного телефона

Ср авг 22, 2018 21:01:34

Пробуждение из сна по прерыванию.
А во время исполнительной части обработчика прерывания по пробуждению отменяем прерывание и выходим из обработчика.
Далее программный опрос той же линии и соответствующая обработка.
Я такую закладку в проекте firefly сделал, но доводить до обработки кнопы за пределами задачи по пробуждению не стал.
:beer:

Re: Включение/ выключение прибора как мобильного телефона

Ср авг 22, 2018 21:29:47

Это как так отменить прерывание?

Добавлено after 53 seconds:
То есть в обработке считать время, если оно не достигнуто,опять уснуть. Так получается?

Re: Включение/ выключение прибора как мобильного телефона

Ср авг 22, 2018 22:36:06

А кнопка многозадачная или только ON/OFF?

Re: Включение/ выключение прибора как мобильного телефона

Чт авг 23, 2018 05:13:43

по 1) настраиваешь энергосбережение по максимуму,
настраиваешь прерывание от кнопки по низкому уровню, но не разрешаешь его
делаешь функцию (или дефайн) засыпания, в ней:
|сбрасываешь флаг прерывания кнопки
|разрешаешь прерывание от кнопки
|усыпляешь контроллер
эта функция должна вызываться из основного цикла по установленному флагу "засыпания"
обработчик прерывания:
|задержка
|проверка кнопки
|если не нажата: ставим флаг "засыпания" убираем флаг этого прерывания и выходим из прерывания
|если нажата: отключаем прерывание кнопки и выходим из прерывания
по 4)
СпойлерИзображение
по рис1.: кнопка нажата - питание приходит в любом случае. контроллер запущен, у него включена подтяжка порта, её тока хватает для удержания включенными цепей питания, пин читается при отпущенной кнопке 1, при нажатой 0. если отключить подтяжку - питание контроллера выключится.
по рис2.: применен более распространенный н канальный мосфет, но рвет схема минус питания, а значит от этой батареи больше ничего не запитать (кроме того, что отключается) т.к. по общему минусу ток обойдет транзистор. т.к. авр не умеет подтяжку к минусу - сделан отдельный резистор подтяжки. для выключения надо настроить порт на выход и подать в него 1.
так кнопка и включает контроллер и сама видна в нём, и тем же портом позволяет управлять питанием.
Последний раз редактировалось Ivanoff-iv Чт авг 23, 2018 10:01:44, всего редактировалось 1 раз.

Re: Включение/ выключение прибора как мобильного телефона

Чт авг 23, 2018 08:10:52

Во время исполнения обработчика прерывания сбрасываем флаги и изменяем режим работы прерывания, которое в данный момент обрабатывается.
По выходу из обработчика режим работы у аппаратной схемотехники уже иной.
И вместо прерывания сканируем линию программно.
8)

Re: Включение/ выключение прибора как мобильного телефона

Чт авг 23, 2018 20:58:28

Делал триггер на cd4093 и мосфете. Включение 1сек, выключение 3сек. Спасало от зависания контроллера. Кнопку можно было использовать в МК как например "назад".

Re: Включение/ выключение прибора как мобильного телефона

Пт авг 24, 2018 21:55:37

Я наверное все таки сделаю кнопку с конденсатором, и глубокое засыпание
Ответить