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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Заставить MSP430 спать все свободное время
dxp
сообщение Jun 23 2011, 02:56
Сообщение #16


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(zltigo @ Jun 23 2011, 00:37) *
Я думаю, что тут народ волнуется о том, что системный таймер будет периодически будить и система будет считать время, даже если кто-то захочет поспать интервал времени много превышающий тик системного таймера.

Ну, дык, заблокировать и его, ежели он не нужен и мешает.


Цитата(zltigo @ Jun 23 2011, 00:37) *
Однажды, выжимая все и вся пришлось sm.gif написать такой вот:
Код
__noreturn void main(void)
{
      for(;; )
        __sleep();
}

biggrin.gif


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jun 23 2011, 10:42
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (dxp @ Jun 23 2011, 05:56) *
Ну, дык, заблокировать и его, ежели он не нужен и мешает.

Это понятно, когда будить можно по внешнему событию, но кому тогда сказать разбудить, например, через сутки sm.gif? Придется делать нечто софтовое или аппаратное позволяющее формировать большие временные интервалы с минимальными затратами энергии.






--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jun 23 2011, 10:46
Сообщение #18


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

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



Цитата(zltigo @ Jun 23 2011, 14:42) *
Это понятно, когда будить можно по внешнему событию, но кому тогда сказать разбудить, например, через сутки sm.gif? Придется делать нечто софтовое или аппаратное позволяющее формировать большие временные интервалы с минимальными затратами энергии.

А динамически период системного тика нельзя менять?


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


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (MrYuran @ Jun 23 2011, 13:46) *
А динамически период системного тика нельзя менять?

Естественно можно, еще можно его обработчик (если формируемого интервала не хватит) на максимально короткий на время сна заменить. Это то, что я имел ввиду под софтовым решением. Можно добавить RTC c будильником и к режимам сна подвязать....


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
jorikdima
сообщение Jun 26 2011, 17:50
Сообщение #20


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

Группа: Свой
Сообщений: 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
Сообщение #21


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

Группа: Свой
Сообщений: 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
Сообщение #22


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

Группа: Свой
Сообщений: 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
jorikdima
сообщение Sep 12 2011, 16:17
Сообщение #23


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

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



Не появилось ни у кого идей по моему вопросу? sm.gif
Go to the top of the page
 
+Quote Post
dxp
сообщение Sep 15 2011, 09:13
Сообщение #24


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(jorikdima @ Sep 12 2011, 23:17) *
Не появилось ни у кого идей по моему вопросу? sm.gif

Разослать широковещательное сообщение всем процессам о смене режима? И пусть они сами рулят своим статусным регистром.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 30th June 2025 - 22:32
Рейтинг@Mail.ru


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