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

 
 
> Заставить MSP430 спать все свободное время
aliko
сообщение Jun 20 2011, 08:49
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 23-11-05
Пользователь №: 11 254



Добрый день.
Вопрос собственно в заголовке. Надо чтобы контроллер MSP430F149 все свободное время спал. Достаточно ли будет написать так:
Код
void OS::IdleProcessUserHook()
{
    LPM0;
}

PS использую IAR
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
jorikdima
сообщение Jun 26 2011, 17:50
Сообщение #2


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



Приветствую.
Не буду создавать отдельную тему, тут напишу. Читал обе темы про слип режим в контексте МСП430 и даже вроде поучаствовал как-то, но появился новый ракурс проблемы.
Все понятно если тип слип режима один, например LPM0. Но что делать, если в зависимости от ситуации тип режима должен меняться?
Например, мой случай. Прибор работает условно в двух режимах, покоя и работы. В покое прибор ничего не делает, просто ждет нажатия кнопки. Его задача потреблять как можно меньше. В режиме работы есть обмен по УАРТ, запись на СД карту и пр. дела, в перерывах между которыми неплохо бы поспать.
Однако, реализовать сон можно тут по-разному. В первом случае можно делать LPM3, и тактироваться от часового кварца. Для периодического опроса кнопки 32 кГц хватит, а периферия не нужна. В режиме работы LPM3 не годится ибо нельзя снимать клоки с УАРТ и пр. поэтому только LPM0.
Проблема вот в чем. Просто поставить if в зависимости от режима в IdleProcessUserHook нельзя. Ведь в каждой из задач ОС при восстановлении контекста восстанавливается и статусный регистр, а в нем информация о работе/не работе FLL. Соответственно при смене режима с покоя на рабочий и включив FLL сей факт запишется только в статусный регистр контекста текущего процесса, а в другие процессы как??? Хакерскими способами не очень хорошо. Кто-нибудь сталкивался с подобной проблемой? Как решали?
Спасибо.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jun 27 2011, 06:31
Сообщение #3


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(jorikdima @ Jun 26 2011, 21:50) *
В покое прибор ничего не делает, просто ждет нажатия кнопки. Его задача потреблять как можно меньше.

Тогда можно загнать в LPM4, а нажатие любой кнопки перенаправить на RST, с последующим запуском рабочего режима (естественно, обработчик вектора сброса должен уметь отличать горячий запуск от холодного)


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
jorikdima
сообщение Jun 27 2011, 13:00
Сообщение #4


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



Цитата(MrYuran @ Jun 27 2011, 10:31) *
Тогда можно загнать в LPM4, а нажатие любой кнопки перенаправить на RST, с последующим запуском рабочего режима (естественно, обработчик вектора сброса должен уметь отличать горячий запуск от холодного)

Спасибо. Но хотелось бы менее хакерского способа sm.gif Ресет контроллера идеологически вещь, которая не должна использоваться для перехода из режима в режим.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- aliko   Заставить MSP430 спать все свободное время   Jun 20 2011, 08:49
- - aliko   Наверное вопрос сочли слишком глупым чтобы на него...   Jun 21 2011, 10:46
|- - SSerge   Цитата(aliko @ Jun 21 2011, 17:46) 1) Я т...   Jun 21 2011, 12:26
|- - aliko   Цитата(SSerge @ Jun 21 2011, 16:26) Тут у...   Jun 22 2011, 08:11
|- - dxp   Цитата(aliko @ Jun 22 2011, 15:11) Ну воб...   Jun 22 2011, 11:58
|- - zltigo   QUOTE (aliko @ Jun 22 2011, 11:11) IdlePr...   Jun 22 2011, 12:10
- - aliko   ЦитатаЧто вы предлагаете делать, когда все ваши пр...   Jun 22 2011, 12:02
|- - MrYuran   Цитата(aliko @ Jun 22 2011, 16:02) Если у...   Jun 22 2011, 12:33
|- - dxp   Цитата(aliko @ Jun 22 2011, 19:02) Ну в о...   Jun 22 2011, 12:35
- - aliko   ЦитатаМне было бы тоже очень интересно узнать про ...   Jun 22 2011, 13:19
|- - dxp   Цитата(aliko @ Jun 22 2011, 20:19) Как-то...   Jun 22 2011, 13:36
- - MrYuran   Ещё вопрос на засыпку: а оно обязательно, вытесняю...   Jun 22 2011, 13:45
|- - dxp   Цитата(MrYuran @ Jun 22 2011, 20:45) Ещё ...   Jun 22 2011, 14:55
|- - zltigo   QUOTE (dxp @ Jun 22 2011, 17:55) Как раз-...   Jun 22 2011, 17:37
|- - dxp   Цитата(zltigo @ Jun 23 2011, 00:37) Я дум...   Jun 23 2011, 02:56
|- - zltigo   QUOTE (dxp @ Jun 23 2011, 05:56) Ну, дык,...   Jun 23 2011, 10:42
|- - MrYuran   Цитата(zltigo @ Jun 23 2011, 14:42) Это п...   Jun 23 2011, 10:46
|- - zltigo   QUOTE (MrYuran @ Jun 23 2011, 13:46) А ди...   Jun 23 2011, 11:08
- - aliko   ЦитатаЕщё вопрос на засыпку: а оно обязательно, вы...   Jun 22 2011, 13:49
- - jorikdima   Не появилось ни у кого идей по моему вопросу?   Sep 12 2011, 16:17
- - dxp   Цитата(jorikdima @ Sep 12 2011, 23:17) Не...   Sep 15 2011, 09:13


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

 


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


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