ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1063034 Топик полностью
Vit (21.12.2020 13:53, просмотров: 395) ответил VLLV на Господа, а расскажите, как в системах на RTOS решается вопрос перехода на низкое энергопотребление от батарейки? Задачи потеряли актуальность, нужно кардинально снизить частоту контроллера, сохранить данные в EEPROM и уснуть глубоко, при появлении обычного питания восстановиться и продолжить работу.
Рекомендую ознакомиться с Practical UML Statecharts in C/C++, 2nd Edition Event-Driven Programming for Embedded Systems https://www.state-machine.com/psicc2/

С указанным камнем есть проблемка нехилая: генератор на часовом кварце разгоняется до 5 сек, возможны падения, а для сброса флага ошибки генератор надо выключить и запустить по новой, причем выключение отрабатывается довольно продолжительное время, цифр на которое в DS нет. Зато есть встроенный RC на 32 кГц. С USB ещё возникал вопрос - ему нужна тактовая 48 МГц, а побудка по появлению VBUS сделана не побудкой, а активизацией модуля. Подменял эту фичу на работу с GPIO, ну и организовывал эти 48 МГц только на время работы USB, а там у ядра частота тоже должна быть не меньше. А при переключении тактовой надо следить за реальными временами...

В общем случае так или иначе при многозадачности (когда одна задача может знать только требуемый для неё уровень энергопотребления, и это включает в себя уровень пониженного потребления, генераторы и частоты) необходим некий менеджер энергопотребления. Для случая, когда нужно принудительно остановить задачи, то им нужно передать сигнал/сообщение. Если нужно снять задачи, то это другой случай.