Включение/ выключение прибора как мобильного телефона
Включение/ выключение прибора как мобильного телефона
Здравствуйте, недавно написал програмку для прибора с батарейным питанием. Контроллер mega168. Включается и выключается он с помощью тумблера. Хотелось бы при длительном нажатии на кнопку уволить мк в спящий режим, и при длительном нажатии будить его,точно так же как и в телефоне. Подскажите как это грамотно реализовать?
- Реклама
- musor
- Друг Кота
- Сообщения: 39197
- Зарегистрирован: Сб сен 13, 2014 16:27:32
- Откуда: СпиртоГонск созвездия Омега
Re: Включение/ выключение прибора как мобильного телефона
сие вполне разумно дерза1
но тумблеру там где есть мк не место...
но тумблеру там где есть мк не место...
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
- Ivanoff-iv
- Друг Кота
- Сообщения: 7077
- Зарегистрирован: Пт ноя 11, 2016 05:48:09
- Откуда: Сердце Пармы
Re: Включение/ выключение прибора как мобильного телефона
варианты:
1) кнопку садить на пин с внешним прерыввнием, прерывание настраивать на низкий уровень и настроить глубокий спящий режим.
2) иногда просыпаться от собаки и проверять кнопку из глубокого спящего режима.
3) использовать неглубокий сон, при этом почти вся периферия остается в работе - кнопку можно опрашивать по таймеру или по прерыванию по фронту/спаду (энергопотребление будет выше).
4) сделать полное самоотключение (управляемый кнопкой и контроллером ключ в питании) контроллер сохраняет параметры в еепром и самовырубается, включается кнопкой.
1) кнопку садить на пин с внешним прерыввнием, прерывание настраивать на низкий уровень и настроить глубокий спящий режим.
2) иногда просыпаться от собаки и проверять кнопку из глубокого спящего режима.
3) использовать неглубокий сон, при этом почти вся периферия остается в работе - кнопку можно опрашивать по таймеру или по прерыванию по фронту/спаду (энергопотребление будет выше).
4) сделать полное самоотключение (управляемый кнопкой и контроллером ключ в питании) контроллер сохраняет параметры в еепром и самовырубается, включается кнопкой.
Для тех, кто не учил магию мир полон физики 
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Re: Включение/ выключение прибора как мобильного телефона
По первому варианту. При удерживание кнопки тикает переменная, когда она достигнет какого то значения, уснуть. А как проснутся при удержании? По четвертому варианту можно взглянуть на схему?
Добавлено after 1 minute 44 seconds:
Можно и триггер сделать по питанию, но больше интересен программный вариант
Добавлено after 2 minutes 58 seconds:
Или например при удержании кнопки заряжать конденсатор через резистор,и при достижении 5 вольт будет подан сигнал на прерывание,и разбудит мк
Добавлено after 1 minute 44 seconds:
Можно и триггер сделать по питанию, но больше интересен программный вариант
Добавлено after 2 minutes 58 seconds:
Или например при удержании кнопки заряжать конденсатор через резистор,и при достижении 5 вольт будет подан сигнал на прерывание,и разбудит мк
Re: Включение/ выключение прибора как мобильного телефона
Пробуждение из сна по прерыванию.
А во время исполнительной части обработчика прерывания по пробуждению отменяем прерывание и выходим из обработчика.
Далее программный опрос той же линии и соответствующая обработка.
Я такую закладку в проекте firefly сделал, но доводить до обработки кнопы за пределами задачи по пробуждению не стал.

А во время исполнительной части обработчика прерывания по пробуждению отменяем прерывание и выходим из обработчика.
Далее программный опрос той же линии и соответствующая обработка.
Я такую закладку в проекте firefly сделал, но доводить до обработки кнопы за пределами задачи по пробуждению не стал.
- Реклама
Re: Включение/ выключение прибора как мобильного телефона
Это как так отменить прерывание?
Добавлено after 53 seconds:
То есть в обработке считать время, если оно не достигнуто,опять уснуть. Так получается?
Добавлено after 53 seconds:
То есть в обработке считать время, если оно не достигнуто,опять уснуть. Так получается?
Re: Включение/ выключение прибора как мобильного телефона
А кнопка многозадачная или только ON/OFF?
Для связи email: risctronix собака gmail.com
- Ivanoff-iv
- Друг Кота
- Сообщения: 7077
- Зарегистрирован: Пт ноя 11, 2016 05:48:09
- Откуда: Сердце Пармы
Re: Включение/ выключение прибора как мобильного телефона
по 1) настраиваешь энергосбережение по максимуму,
настраиваешь прерывание от кнопки по низкому уровню, но не разрешаешь его
делаешь функцию (или дефайн) засыпания, в ней:
|сбрасываешь флаг прерывания кнопки
|разрешаешь прерывание от кнопки
|усыпляешь контроллер
эта функция должна вызываться из основного цикла по установленному флагу "засыпания"
обработчик прерывания:
|задержка
|проверка кнопки
|если не нажата: ставим флаг "засыпания" убираем флаг этого прерывания и выходим из прерывания
|если нажата: отключаем прерывание кнопки и выходим из прерывания
по 4)
по рис1.: кнопка нажата - питание приходит в любом случае. контроллер запущен, у него включена подтяжка порта, её тока хватает для удержания включенными цепей питания, пин читается при отпущенной кнопке 1, при нажатой 0. если отключить подтяжку - питание контроллера выключится.
по рис2.: применен более распространенный н канальный мосфет, но рвет схема минус питания, а значит от этой батареи больше ничего не запитать (кроме того, что отключается) т.к. по общему минусу ток обойдет транзистор. т.к. авр не умеет подтяжку к минусу - сделан отдельный резистор подтяжки. для выключения надо настроить порт на выход и подать в него 1. так кнопка и включает контроллер и сама видна в нём, и тем же портом позволяет управлять питанием.
настраиваешь прерывание от кнопки по низкому уровню, но не разрешаешь его
делаешь функцию (или дефайн) засыпания, в ней:
|сбрасываешь флаг прерывания кнопки
|разрешаешь прерывание от кнопки
|усыпляешь контроллер
эта функция должна вызываться из основного цикла по установленному флагу "засыпания"
обработчик прерывания:
|задержка
|проверка кнопки
|если не нажата: ставим флаг "засыпания" убираем флаг этого прерывания и выходим из прерывания
|если нажата: отключаем прерывание кнопки и выходим из прерывания
по 4)
Спойлер
по рис1.: кнопка нажата - питание приходит в любом случае. контроллер запущен, у него включена подтяжка порта, её тока хватает для удержания включенными цепей питания, пин читается при отпущенной кнопке 1, при нажатой 0. если отключить подтяжку - питание контроллера выключится.
по рис2.: применен более распространенный н канальный мосфет, но рвет схема минус питания, а значит от этой батареи больше ничего не запитать (кроме того, что отключается) т.к. по общему минусу ток обойдет транзистор. т.к. авр не умеет подтяжку к минусу - сделан отдельный резистор подтяжки. для выключения надо настроить порт на выход и подать в него 1.
Последний раз редактировалось Ivanoff-iv Чт авг 23, 2018 10:01:44, всего редактировалось 1 раз.
Для тех, кто не учил магию мир полон физики 
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Re: Включение/ выключение прибора как мобильного телефона
Во время исполнения обработчика прерывания сбрасываем флаги и изменяем режим работы прерывания, которое в данный момент обрабатывается.
По выходу из обработчика режим работы у аппаратной схемотехники уже иной.
И вместо прерывания сканируем линию программно.

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


