Отправить AVR в сон на определенное время
- BCluster
- Собутыльник Кота
- Сообщения: 2512
- Зарегистрирован: Пн апр 06, 2009 19:33:29
- Откуда: Молдова, Кишинев
- Контактная информация:
Отправить AVR в сон на определенное время
Привет всем. Собственно после измерения надо уложить МК спать на определенный промежуток времени (10-100 сек). Каким образом это можно реализовать?)
- Реклама
- GP1
- Поставщик валерьянки для Кота
- Сообщения: 2401
- Зарегистрирован: Пт май 23, 2008 19:32:22
- Откуда: Россия, Волгоград
- Контактная информация:
Re: Отправить AVR в сон на определенное время
по таймеру, правда "глубокого сна" не получишь, перефирия должна тикать.
или сделать внешний таймер на NE555 и будиться по INT0, тогда вообще усыпить по полной можно.
или сделать внешний таймер на NE555 и будиться по INT0, тогда вообще усыпить по полной можно.
Последний раз редактировалось GP1 Ср окт 19, 2011 11:04:09, всего редактировалось 1 раз.
-
Мастер Ломастер
- Поставщик валерьянки для Кота
- Сообщения: 1995
- Зарегистрирован: Ср май 11, 2011 21:37:45
- Откуда: Цветочный город
- Контактная информация:
Re: Отправить AVR в сон на определенное время
WDT может разбудитьBCluster писал(а):Привет всем. Собственно после измерения надо уложить МК спать на определенный промежуток времени (10-100 сек). Каким образом это можно реализовать?)
битва с дураками проиграна, победители торжествуют. слава победителям!
- GP1
- Поставщик валерьянки для Кота
- Сообщения: 2401
- Зарегистрирован: Пт май 23, 2008 19:32:22
- Откуда: Россия, Волгоград
- Контактная информация:
Re: Отправить AVR в сон на определенное время
у собаки период маловат, да и не всегда удобно начинать программу сначала, как-то такМастер Ломастер писал(а): WDT может разбудить
-
Мастер Ломастер
- Поставщик валерьянки для Кота
- Сообщения: 1995
- Зарегистрирован: Ср май 11, 2011 21:37:45
- Откуда: Цветочный город
- Контактная информация:
Re: Отправить AVR в сон на определенное время
до 8 секунд, если не ошибаюсь. ну а там небольшой счетчик на 12 - вот вам и 100 секунд... за то время, что счетчик тикнет, много не потребит...GP1 писал(а):у собаки период маловат, да и не всегда удобно начинать программу сначала, как-то такМастер Ломастер писал(а): WDT может разбудить
битва с дураками проиграна, победители торжествуют. слава победителям!
- Реклама
- BCluster
- Собутыльник Кота
- Сообщения: 2512
- Зарегистрирован: Пн апр 06, 2009 19:33:29
- Откуда: Молдова, Кишинев
- Контактная информация:
Re: Отправить AVR в сон на определенное время
собака сбрасывать программку будет, а мне надо сделать своеобразный дилэй, с уходом в сон. Наверное придется возится с таймером
-
Мастер Ломастер
- Поставщик валерьянки для Кота
- Сообщения: 1995
- Зарегистрирован: Ср май 11, 2011 21:37:45
- Откуда: Цветочный город
- Контактная информация:
Re: Отправить AVR в сон на определенное время
да и пусть себе сбрасывает - чему это может помешать?! работающий таймер отожрет гораздо больше энергии.BCluster писал(а):собака сбрасывать программку будет, а мне надо сделать своеобразный дилэй, с уходом в сон. Наверное придется возится с таймером
битва с дураками проиграна, победители торжествуют. слава победителям!
- BCluster
- Собутыльник Кота
- Сообщения: 2512
- Зарегистрирован: Пн апр 06, 2009 19:33:29
- Откуда: Молдова, Кишинев
- Контактная информация:
Re: Отправить AVR в сон на определенное время
дело в том, что мне нужно чтобы программа продолжалась с того места, где она ушла в сон а не с начала.
-
Мастер Ломастер
- Поставщик валерьянки для Кота
- Сообщения: 1995
- Зарегистрирован: Ср май 11, 2011 21:37:45
- Откуда: Цветочный город
- Контактная информация:
Re: Отправить AVR в сон на определенное время
вам нужно организовать свою программу так, чтобы место, откуда она начинается и было местом, где она пробуждается. где засыпает - все равно.BCluster писал(а):дело в том, что мне нужно чтобы программа продолжалась с того места, где она ушла в сон а не с начала.
и проблемы не будет
битва с дураками проиграна, победители торжествуют. слава победителям!
- BCluster
- Собутыльник Кота
- Сообщения: 2512
- Зарегистрирован: Пн апр 06, 2009 19:33:29
- Откуда: Молдова, Кишинев
- Контактная информация:
Re: Отправить AVR в сон на определенное время
это проблема - в процессе выполнения появляется куча промежуточных данных которые терять нельзя
-
Мастер Ломастер
- Поставщик валерьянки для Кота
- Сообщения: 1995
- Зарегистрирован: Ср май 11, 2011 21:37:45
- Откуда: Цветочный город
- Контактная информация:
Re: Отправить AVR в сон на определенное время
да в чем проблема-то? аппаратный сброс не изменяет содержимое ОЗУ и РОН! просто подгоните свой алгоритм под условия пробуждения, и все!BCluster писал(а):это проблема - в процессе выполнения появляется куча промежуточных данных которые терять нельзя
битва с дураками проиграна, победители торжествуют. слава победителям!
Re: Отправить AVR в сон на определенное время
Собака в режиме interrupt & reset после первого периода вызывает прерывание, и только после второго сбросит контроллер!BCluster писал(а):собака сбрасывать программку будет, а мне надо сделать своеобразный дилэй, с уходом в сон. Наверное придется возится с таймером
Что-б сброса не было надо до окончания второго периода установить WDIE заново.
Я делаю это в прерывании - сразу по пробуждению выставляем WDIE и делаем reti.
Все работает отлично, но если прога подвиснет, то сброс будет через двойной интервал собаки....
Читать ДШ: WDTCSR – Watchdog timer control register, описание WDIE
— Не говорите мне что делать и я не скажу куда Вам идти...
-
Мастер Ломастер
- Поставщик валерьянки для Кота
- Сообщения: 1995
- Зарегистрирован: Ср май 11, 2011 21:37:45
- Откуда: Цветочный город
- Контактная информация:
Re: Отправить AVR в сон на определенное время
только надо отметить, что данный режим не во всех МК реализуется, а вот тупой сброс от WDT - во всех.md5sum писал(а):Собака в режиме interrupt & reset после первого периода вызывает прерывание, и только после второго сбросит контроллер!
битва с дураками проиграна, победители торжествуют. слава победителям!
Re: Отправить AVR в сон на определенное время
Прикошачь туда по шине I2C внешний RTC, например DS1307, а выход его "будильника" посади на ножку прерывания МК..
МК будет "заводить" на RTC время, когда нужно будет просыпаться, а сам будет засыпать...
МК будет "заводить" на RTC время, когда нужно будет просыпаться, а сам будет засыпать...
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
- BCluster
- Собутыльник Кота
- Сообщения: 2512
- Зарегистрирован: Пн апр 06, 2009 19:33:29
- Откуда: Молдова, Кишинев
- Контактная информация:
Re: Отправить AVR в сон на определенное время
спасибо за инфу, не зналМастер Ломастер писал(а):да в чем проблема-то? аппаратный сброс не изменяет содержимое ОЗУ и РОН! просто подгоните свой алгоритм под условия пробуждения, и все!
однако инициализация переменных пройдет заново при сбросе
Re: Отправить AVR в сон на определенное время
Ну так автор не указал какой МК 
Также при старте можно проверить что было источником сброса (MCUSR – MCU status register) и если сброс от собаки, то jmp <куданадо>.
Также при старте можно проверить что было источником сброса (MCUSR – MCU status register) и если сброс от собаки, то jmp <куданадо>.
— Не говорите мне что делать и я не скажу куда Вам идти...
Re: Отправить AVR в сон на определенное время
Не всехBCluster писал(а):однако инициализация переменных пройдет заново при сбросе
Код: Выделить всё
int foo __attribute__ ((section (".noinit")));— Не говорите мне что делать и я не скажу куда Вам идти...
- BCluster
- Собутыльник Кота
- Сообщения: 2512
- Зарегистрирован: Пн апр 06, 2009 19:33:29
- Откуда: Молдова, Кишинев
- Контактная информация:
Re: Отправить AVR в сон на определенное время
atmega8 али atmega48/88
Re: Отправить AVR в сон на определенное время
В 48/88/168 собака умеет interrupt & reset.
— Не говорите мне что делать и я не скажу куда Вам идти...
-
Мастер Ломастер
- Поставщик валерьянки для Кота
- Сообщения: 1995
- Зарегистрирован: Ср май 11, 2011 21:37:45
- Откуда: Цветочный город
- Контактная информация:
Re: Отправить AVR в сон на определенное время
offtop
надо так: 48/88/168 умеет interrupt & reset, собака. 
неправильно написалиmd5sum писал(а):В 48/88/168 собака умеет interrupt & reset.
битва с дураками проиграна, победители торжествуют. слава победителям!



