|
Загон сторожевой собаки в будку и долгое сидение в SLEEP |
|
|
|
Jun 6 2006, 05:28
|

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

|
Такая вот ситуация: Берем МК, например Тини 26, у него предделитель Timer1 может быть 16384 и при частоте 1 МГц мы получаем переполнение за 4 секунды. Задача такая, останавливаемся на sleep, раз в четыре секунды вываливаемся в прерывание по переполнению, что то делаем, и если условие неверно, опять переходим в sleep. Вопрос у меня вот в чем: как сбрасывать wdr в момент сидения в sleep? Я сижу в sleep 4 секунды, а максимальное время wdr - 2 секунды. Отказыватся от wdr не хочется, питание устройства очень редко будет отключатся, sleep - устройство питается от аккумуляторов, хоть достаточно и мощных, но снижение потребления хоть немного не помешает. Единственное, что пришло в голову, разбивать 4 секудный отрезок таймера по крайней мере на три и сбрасывать wdr. Но вероятно есть и другие решения?
--------------------
Андрей Смирнов
|
|
|
|
|
Jun 6 2006, 06:06
|
Местный
  
Группа: Свой
Сообщений: 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 правильное
|
|
|
|
|
Jun 6 2006, 06:08
|
Местный
  
Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589

|
Цитата(Pyku_He_oTTyda @ Jun 6 2006, 09:47)  Цитата Можно еще находясь в PowerDown просыпаться от WDT. Тогда потребление упадет оч. сильно. Я думал об этом, но кажется что это "некрасивое" решение. Так вообще делают в разработках (имеется ввиду не любительские поделки)? Это один из основных способов скатиться к микропотреблению. http://electronix.ru/forum/index.php?showtopic=16657
--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
|
|
|
|
|
Jun 6 2006, 06:28
|
Местный
  
Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589

|
Цитата(Pyku_He_oTTyda @ Jun 6 2006, 10:23)  C резетом по wdr все даже намного проще у меня складывается  Не думал, что простое решение будет оптимальным Небольшая поправка. Можно именно просыпаться по WDT т.е. есть прерывание от WDT. Но если устроило каждый раз ресетиться то тоже вариант  .
--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
|
|
|
|
|
Jun 6 2006, 07:37
|
Местный
  
Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589

|
Цитата(Rst7 @ Jun 6 2006, 11:27)  Стоп. В Т26 нерасширенный WDT, так что только ресет Аааа. Просто было Цитата Берем МК, например Тини 26 Вот и необратил внимания  .
--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
|
|
|
|
|
Jun 6 2006, 09:05
|

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

|
Цитата Удобно использовать мастер начального кода CVAVR - с нем сразу видно параметры переферии. Всысле? Что я в данном случае увижу? Период собаки - и так ясно... Какие прерывания есть? даташит под рукой... Меня больше интересовал сам принцип вопроса, без привязки к конкретному МК. Мне казалось что reset по wdr не самое красивое решение  З.Ы. Кстати, прога на asm
--------------------
Андрей Смирнов
|
|
|
|
|
Jun 6 2006, 10:17
|

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

|
Цитата Берем МК, например Тини 26, А почему для примера не взять tiny2313? или tiny13? у них до 8 секунд... :-) Цитата если установить фьюз WDTON, то собаку можно останавливать/запускать Установка WDTON включает аппаратный вачдок, причем только на reset. В Вашем случае(для t26) можно просыпаться раз в две секунды и сбрасывать wdt, на потребление это не слишком скажется, тк время сна намного больше обработки прерывания wdt. Вопрос "красивости" тут несколько непонятен?! это документированая возможность? - да! Прерывание по переполнению есть? - да! (у Тiny2313 и Тiny13). Использование значит допустимо.
--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
|
|
|
|
|
Jun 6 2006, 12:20
|

кекс
     
Группа: Свой
Сообщений: 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 раз).
|
|
|
|
|
Jun 7 2006, 05:01
|

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

|
Сделал резет по wdr. Сижу в StBy и просыпаюсь по сбросу собаки, опрашиваю АЦП, и если условие выполняется, начинаю работать. Вопрос в догонку, не смог найти в даташите, за сколько установятся параметры датчика холла при включении? Кто нибудь работал с ними? Даташит прикладываю
Прикрепленные файлы
SS495.rar ( 389.13 килобайт )
Кол-во скачиваний: 46
--------------------
Андрей Смирнов
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|