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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Загон сторожевой собаки в будку и долгое сидение в SLEEP
Pyku_He_oTTyda
сообщение Jun 6 2006, 05:28
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 751
Регистрация: 4-08-05
Из: Великие Луки
Пользователь №: 7 360



Такая вот ситуация:
Берем МК, например Тини 26, у него предделитель Timer1 может быть 16384 и при частоте 1 МГц мы получаем переполнение за 4 секунды.
Задача такая, останавливаемся на sleep, раз в четыре секунды вываливаемся в прерывание по переполнению, что то делаем, и если условие неверно, опять переходим в sleep.
Вопрос у меня вот в чем: как сбрасывать wdr в момент сидения в sleep? Я сижу в sleep 4 секунды, а максимальное время wdr - 2 секунды.
Отказыватся от wdr не хочется, питание устройства очень редко будет отключатся, sleep - устройство питается от аккумуляторов, хоть достаточно и мощных, но снижение потребления хоть немного не помешает.
Единственное, что пришло в голову, разбивать 4 секудный отрезок таймера по крайней мере на три и сбрасывать wdr. Но вероятно есть и другие решения?


--------------------
Андрей Смирнов
Go to the top of the page
 
+Quote Post
Igor26
сообщение Jun 6 2006, 05:36
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544



Точно не помню, но, помоему, если установить фьюз WDTON, то собаку можно останавливать/запускать в любом месте программы.
Посмотрите в этом направлении. ДШ нет под рукой, конкретно ответить не могу.
Go to the top of the page
 
+Quote Post
otrog
сообщение Jun 6 2006, 05:41
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589



Можно еще находясь в PowerDown просыпаться от WDT. Тогда потребление упадет оч. сильно.


--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
Go to the top of the page
 
+Quote Post
Pyku_He_oTTyda
сообщение Jun 6 2006, 05:47
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 751
Регистрация: 4-08-05
Из: Великие Луки
Пользователь №: 7 360



Цитата
Можно еще находясь в PowerDown просыпаться от WDT. Тогда потребление упадет оч. сильно.


Я думал об этом, но кажется что это "некрасивое" решение. Так вообще делают в разработках (имеется ввиду не любительские поделки)?


--------------------
Андрей Смирнов
Go to the top of the page
 
+Quote Post
ivstech
сообщение Jun 6 2006, 06:06
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 204
Регистрация: 5-01-06
Пользователь №: 12 860



>>Такая вот ситуация:
>> Берем МК, например Тини 26, у него предделитель Timer1 может быть 16384 и при частоте 1 МГц мы >>получаем переполнение за 4 секунды.
>> Задача такая, останавливаемся на sleep, раз в четыре секунды вываливаемся в прерывание по >>переполнению, что то делаем, и если условие неверно, опять переходим в sleep.
В режиме power save работает только асинхронный (часовой) таймер
>> Вопрос у меня вот в чем: как сбрасывать wdr в момент сидения в sleep? Я сижу в sleep 4 секунды, а >>максимальное время wdr - 2 секунды.
Никак
>> Отказыватся от wdr не хочется, питание устройства очень редко будет отключатся, sleep - >>устройство питается от аккумуляторов, хоть достаточно и мощных, но снижение потребления хоть >>немного не помешает.

>> Единственное, что пришло в голову, разбивать 4 секудный отрезок таймера по крайней мере на три >>и сбрасывать wdr. Но вероятно есть и другие решения?

Если включить Fuse Wdt On, то Watchdog выключить из программы вообще нельзя

Предложенное Вам решение просыпаться от wdt правильное
Go to the top of the page
 
+Quote Post
otrog
сообщение Jun 6 2006, 06:08
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589



Цитата(Pyku_He_oTTyda @ Jun 6 2006, 09:47) *
Цитата
Можно еще находясь в PowerDown просыпаться от WDT. Тогда потребление упадет оч. сильно.


Я думал об этом, но кажется что это "некрасивое" решение. Так вообще делают в разработках (имеется ввиду не любительские поделки)?

Это один из основных способов скатиться к микропотреблению.
http://electronix.ru/forum/index.php?showtopic=16657


--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
Go to the top of the page
 
+Quote Post
Pyku_He_oTTyda
сообщение Jun 6 2006, 06:23
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 751
Регистрация: 4-08-05
Из: Великие Луки
Пользователь №: 7 360



C резетом по wdr все даже намного проще у меня складываетсяsmile.gif
Не думал, что простое решение будет оптимальным


--------------------
Андрей Смирнов
Go to the top of the page
 
+Quote Post
otrog
сообщение Jun 6 2006, 06:28
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589



Цитата(Pyku_He_oTTyda @ Jun 6 2006, 10:23) *
C резетом по wdr все даже намного проще у меня складываетсяsmile.gif
Не думал, что простое решение будет оптимальным

Небольшая поправка. Можно именно просыпаться по WDT т.е. есть прерывание от WDT.
Но если устроило каждый раз ресетиться то тоже вариант wink.gif .


--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Jun 6 2006, 07:27
Сообщение #9


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Стоп. В Т26 нерасширенный WDT, так что только ресет


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
otrog
сообщение Jun 6 2006, 07:37
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589



Цитата(Rst7 @ Jun 6 2006, 11:27) *
Стоп. В Т26 нерасширенный WDT, так что только ресет

Аааа. Просто было
Цитата
Берем МК, например Тини 26
Вот и необратил внимания blush.gif .


--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
Go to the top of the page
 
+Quote Post
Pyku_He_oTTyda
сообщение Jun 6 2006, 09:05
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 751
Регистрация: 4-08-05
Из: Великие Луки
Пользователь №: 7 360



Цитата
Удобно использовать мастер начального кода CVAVR - с нем сразу видно параметры переферии.


Всысле? Что я в данном случае увижу? Период собаки - и так ясно... Какие прерывания есть? даташит под рукой...

Меня больше интересовал сам принцип вопроса, без привязки к конкретному МК. Мне казалось что reset по wdr не самое красивое решениеsmile.gif

З.Ы. Кстати, прога на asm


--------------------
Андрей Смирнов
Go to the top of the page
 
+Quote Post
add
сообщение Jun 6 2006, 10:17
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459



Цитата
Берем МК, например Тини 26,

А почему для примера не взять tiny2313? или tiny13? у них до 8 секунд... :-)

Цитата
если установить фьюз WDTON, то собаку можно останавливать/запускать

Установка WDTON включает аппаратный вачдок, причем только на reset.
В Вашем случае(для t26) можно просыпаться раз в две секунды и сбрасывать wdt, на потребление это не слишком скажется, тк время сна намного больше обработки прерывания wdt.
Вопрос "красивости" тут несколько непонятен?! это документированая возможность? - да! Прерывание по переполнению есть? - да! (у Тiny2313 и Тiny13). Использование значит допустимо.


--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
Go to the top of the page
 
+Quote Post
Pyku_He_oTTyda
сообщение Jun 6 2006, 10:24
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 751
Регистрация: 4-08-05
Из: Великие Луки
Пользователь №: 7 360



Цитата
А почему для примера не взять tiny2313? или tiny13? у них до 8 секунд... :-)


не было в наличииsmile.gif


--------------------
Андрей Смирнов
Go to the top of the page
 
+Quote Post
defunct
сообщение Jun 6 2006, 12:20
Сообщение #14


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Pyku_He_oTTyda @ Jun 6 2006, 08:28) *
Вопрос у меня вот в чем: как сбрасывать wdr в момент сидения в sleep? Я сижу в sleep 4 секунды, а максимальное время wdr - 2 секунды.
Отказыватся от wdr не хочется, питание устройства очень редко будет отключатся, sleep - устройство питается от аккумуляторов, хоть достаточно и мощных, но снижение потребления хоть немного не помешает.

WDT нельзя сбросить находясь в режиме сна.

Поэтому для заданного условия, решение может быть только таким:
Настроить WDT на максимально возможный период сброса. Установить длительность между пробуждениями устройства так, чтобы оно было хотя бы в 2 раза меньше максимальной длительности периода WDT. Сразу после команды sleep, вставить команду WDR (либо если у вас весь алгоритм программы выполняется в обработчике прерывания таймера, тогда вставить WDR в обработчик прерывания).

Компенсировать возросшее суммарное энергопотребление увеличением тактовой частоты ядра (в 8 раз).
Go to the top of the page
 
+Quote Post
Pyku_He_oTTyda
сообщение Jun 7 2006, 05:01
Сообщение #15


Профессионал
*****

Группа: Свой
Сообщений: 1 751
Регистрация: 4-08-05
Из: Великие Луки
Пользователь №: 7 360



Сделал резет по wdr. Сижу в StBy и просыпаюсь по сбросу собаки, опрашиваю АЦП, и если условие выполняется, начинаю работать.

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

Даташит прикладываю
Прикрепленные файлы
Прикрепленный файл  SS495.rar ( 389.13 килобайт ) Кол-во скачиваний: 46
 


--------------------
Андрей Смирнов
Go to the top of the page
 
+Quote Post

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

 


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


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