Перейти к содержанию
    

Пробую написать сенсор на CC2541

Всем привет.

 

Вот понадобилось написать сенсор давления в BLE. Взял я CC2541 модуль для обучения себя любимого и на базе примера Температурного датчика запилил Environment service с датчиком давления. Всё бы ничего и всё работает. Теперь я хочу понять как экономить батарейку.

есть такой чудный метод как osal_pwrmgr_device( PWRMGR_BATTERY ); но как он работает? Когда она уходит в сон и на какое время?

опять же, как проредить потребление? Я подумал что можно отключать Advertise на какие-нить 2-3 минуты, затем его включать на 10-15 секунд и по новой. Особой "динамики" не требуется. В свою очередь если кто-то успел зацепиться в эти 10-15 секунд, то уже не отключаться до конца сессии.

Так вот. если я взведу таймер средствами osal_start_timerEx() на какие-нить 2-3 минуты, будет ли это корректно? Уснёт ли она на это время пока я всё отключил и жду события от таймера? Если не уснёт, то как уснуть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Средствами ZStack вроде как больше чем osal_pwrmgr_device( PWRMGR_BATTERY ); уже не сделаешь. По хорошему нужно уходить в глубокий сон и просыпаться по sleep таймеру(см halSleepSetTimer и HAL_SLEEP_PREP_POWER_MODE), но лично я это не практиковал, проект на этом контроллера был заморожен на стадии демо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...