реклама на сайте
подробности

 
 
> Кнопка включения и выключения устройства на STM32F103
Salamander
сообщение Dec 21 2013, 20:12
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 466
Регистрация: 17-11-12
Пользователь №: 74 443



Коллеги, посоветуйте, как лучше организовать кнопку включения по типу тех, что в мобильниках - по длительному нажатию.

Мне видится так - устройство при подключении питания стартует и тут же уходит в один из режимов пониженного энергопотребления. Но при этом включает на выход один из пинов, на вход другой пин и ждет, когда на этом пине появится сигнал от первого пина (у меня матричная клавиатура). При этом можно конечно завести таймер, но по мне так лучше инкрементировать некую величину и по достижению ей порога пускать программу дальше - выходить из спящего режима. Как выключать? При нажатии на кнопку начинать отсчет, по достижении временного интервала - делать RESET.

По крайней мере, я так делал несколько лет назад на AVR -работало.

Хочу повторить то же на STM32F103, но сами понимаете, насколько в нем все наворочено, а я новичок в работе с этим камнем. На русском информации по спящим режимам, с примерами кода крайне мало. В связи с чем вопросы:

1. Для описанной задачи - какой режим лучше использовать? Нужно ли что-то отключать на старте, подключенное по умлочанию?
2. Как сделать программный RESET?

P.S. устройство уже собрано и поэтому варианты с использованием RTC (встречал в интернете намеки на его исползование в таких задачах) не подойдет. Вариант с использование пина WKUP тоже не подойдет, у меня на него от батареи через делитель подается напряжение, для анализа его при помощи АЦП.

Сообщение отредактировал Salamander - Dec 21 2013, 20:17
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Salamander   Кнопка включения и выключения устройства на STM32F103   Dec 21 2013, 20:12
- - IgorKossak   Посмотрите в сторону готовых решений. Можно найти ...   Dec 21 2013, 21:14
- - A. Fig Lee   Reset примерно так: Код#define AIRCR_VECTKEY_MASK...   Dec 21 2013, 21:23
- - Salamander   За RESET спасибо, работает. Насчет RTC - был непр...   Dec 21 2013, 22:23
- - nx6310   В библиотеках stm есть примеры работы с RTC   Dec 21 2013, 22:40
- - Salamander   Нашел я пример, как раз того, что мне надо. Код NV...   Dec 22 2013, 07:19
- - smk   Есть же специальный пин PA0. При включении питания...   Dec 22 2013, 08:20
- - Salamander   ЦитатаЕсть же специальный пин PA0. А если так? (с...   Dec 22 2013, 09:07
- - nx6310   Вам надо настроить прерывание по внешней линии EXT...   Dec 22 2013, 09:30
- - Salamander   ЦитатаВам надо настроить прерывание по внешней лин...   Dec 22 2013, 10:14
- - nx6310   При пробуждении из режима standby проц тупо сбрасы...   Dec 22 2013, 10:55
- - Salamander   Заработало! В сухом остатке получилось вот чт...   Dec 22 2013, 14:22
- - nx6310   Вроде все нормально. Если работает то все отлично)   Dec 22 2013, 14:49


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 11:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.01348 секунд с 7
ELECTRONIX ©2004-2016