Например TDA7294

Форум РадиоКот • Просмотр темы - Вопрос по спящему режиму AVR
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Ср авг 13, 2025 02:18:42

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Вопрос по спящему режиму AVR
СообщениеДобавлено: Вт янв 16, 2007 20:10:22 
Открыл глаза

Зарегистрирован: Вс дек 03, 2006 17:36:04
Сообщений: 59
Рейтинг сообщения: 0
Mega8. Второй день бьюсь сделать засыпание-просыпание одной кнопкой. Завожу кнопку на INT0. Включаю INT0 на срабатывание по низкому уровню. Пишу обработчик прерывания чтобы четный раз powerdown(); нечетный - ничего. И у мк едет крыша) Либо не включается потом либо работает с задержками, либо не йёдешь в слип вообще:(. Может я чего не отключил, и оно генерит прерывания? У меня есть рабочий девайс и его модель в протеусе. Везде примерно одно и то же. Кто-то уже пытался сделать подобное?

Добавляю: в Idle не уходит вообще. В powerdown уходит, но не возвращается никакими попытками дергать INT0 INT1 :( Это в протеусе.

_________________
http://www.alldatasheet.com/


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт янв 16, 2007 22:23:26 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2116
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18403
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Без исходника сложно давать советы, но попробую...
Ты в прерывании включаешь SLEEP или POWERDOWN?
Если так, то это в корне неверно. После команды засыпания контроллер уходит в спячку. По прерыванию - просыпается и уходит в обработчик, из него выходит и выполняет команду, которая следует за той, которая перевела в сон. Не удивлюсь, если контроллер умрет вместо сна, если ты усыпишь его в обработчике прерывания - у AVR-то одноуровненвая система прерываний, т.е. пока текущий обработчик не закончится, новое прерывание не возникнет! Сделай так: бесконечный цикл, в котором анализируешь какую-то ячеечку - если там четное число, то усыпляешь, если нечетное - не усыпляешь, а бодрствуешь. А в обработчике прерывания эту ячеечку просто инкрементируй. Должно получиться.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт янв 16, 2007 23:44:51 
Первый раз сказал Мяу!

Зарегистрирован: Пт окт 27, 2006 22:56:22
Сообщений: 28
Откуда: Daugavpils
Рейтинг сообщения: 0
Тоже не могу проснуться. Что не так?

__disable_interrupt();
MCUCR = (1<<SE) | (1<<SM2) | (1<<SM1) | (0<<SM0) | (1<<ISC11) | (0<<ISC10);
GICR = (1<<INT1);
__enable_interrupt();
__no_operation();
__sleep();

Все в бесконечном цикле, выключается намертво.

XEK
Про протеус и прерывания
http://electronix.ru/forum/index.php?showtopic=25504


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср янв 17, 2007 09:44:37 
Вечно гонимый
Аватар пользователя

Зарегистрирован: Ср янв 10, 2007 19:15:51
Сообщений: 568
Рейтинг сообщения: 0
Вот тест режима SLEEP с просыпанием по INT в симуляторе VMLAB
взяит из FAQ по AVR WinAVR CVAVR IAR ICC Си для МК от сюда:
http://www.radiokot.ru/forum/viewtopic.php?t=2273


Вложения:
sleep_test_avr.rar [4.65 KiB]
Скачиваний: 462
Вернуться наверх
 
Не в сети
 Заголовок сообщения: ARV - спасибо!
СообщениеДобавлено: Ср янв 17, 2007 14:25:44 
Открыл глаза

Зарегистрирован: Вс дек 03, 2006 17:36:04
Сообщений: 59
Рейтинг сообщения: 0
ARV - мегагений)
Действительно, проблема такая: в C++ в обработчике прерывания последняя команда powerdown();, но в ASM по сути - RETI, поэтому засыпал он в обработчике прерывания. И не просыпался потому что прерывание не могло генерироваться, т.к. предыдущее ещё не было обработано. Спасибо. На будущее буду знать.

Скажи, правда, что на входах AVR есть триггеры Шмита? Судя по моим наблюдениям они есть но оччень маленькие. А вот детекция фронта (это в прерывании, INT1 по переднему фронту) работает с голой оптопарой, это вот как раз круто.

И ещё тупой вопрос - защита от программирования при прошивке - это работает? или всеже это бесполезно?

_________________
http://www.alldatasheet.com/


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср янв 17, 2007 14:37:19 
Вечно гонимый
Аватар пользователя

Зарегистрирован: Ср янв 10, 2007 19:15:51
Сообщений: 568
Рейтинг сообщения: 0
может от считывания ? работает.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ARV - спасибо!
СообщениеДобавлено: Ср янв 17, 2007 14:55:24 
Вечно гонимый
Аватар пользователя

Зарегистрирован: Ср янв 10, 2007 19:15:51
Сообщений: 568
Рейтинг сообщения: 0
XEK писал(а):
ARV - мегагений)
правда, что на входах AVR есть триггеры Шмита?


да, правда. подробно об этом и про величину гистерезиса для разных напряжений птания я прочитал на стр. 2 этого руководства http://www.roboforum.ru/viewtopic.htm?p=11560
ну и в ДШ конечно по английски есть.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 49


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y