Страница 1 из 1
Как разбудить 328P с помощью RTC и внешнего прерывания.
Добавлено: Ср июл 04, 2018 14:00:04
timklass
Всем привет! Стоит задача разбудить Atmega328P из power down с помощью часов реального времени (в момент срабатывания будильника нога INTA/INTB переходит в низкое состояние) с использованием внешних прерываний. Загвоздка состоит в том, что INT0 и 1 заняты кнопками, которые тоже будят микру по необходимости. Возможно ли пробуждение из сна от PCINT.. или только INT0, 1?
Если нет, я так понимаю, кнопки нужно вешать на один INT через диоды, а другой INT освобождать для RTC. По аналогии со схемой
http://avrproject.ru/more_int/132.png
Re: Как разбудить 328P с помощью RTC и внешнего прерывания.
Добавлено: Пт июл 06, 2018 04:44:18
afz
Вообще--то у 328-й Меги, кроме INT0 и INT1 еще есть и штук 20 PCINTnn (Pin Change INTerrupt), т.е. любой пин GPIO может быть использован для прерывания по изменению его состояния. И эти самые PCINT в ДШ заявлены, как средство пробуждения из Power Down. Я, правда, еще не вникал в использование этих самых PCINT, но в ДШ, вроде-бы, все описано довольно понятно.
Re: Как разбудить 328P с помощью RTC и внешнего прерывания.
Добавлено: Пт июл 06, 2018 12:18:05
timklass
Да, но поиск в интернете показал, что заявления по такому способу противоречивы, кто-то уверяет, что можно будить, кто-то нет. Мол, это не для глубокого сна. У меня пока не получается разбудить через PCINT. Вот и хочу понять это я что-то делаю неправильно или это просто невозможно при данном режиме сна.
Re: Как разбудить 328P с помощью RTC и внешнего прерывания.
Добавлено: Пт июл 06, 2018 12:27:35
ARV
timklass писал(а):Да, но
никаких но, в даташите (раздел 14.6) сказано без всяких но:

Re: Как разбудить 328P с помощью RTC и внешнего прерывания.
Добавлено: Пт июл 06, 2018 12:31:12
afz
заявления по такому способу противоречивы, кто-то уверяет, что можно будить, кто-то нет.
Даташит на эту тему гласит однозначно: можно. Таблица 14-1 на стр. 62, там в секции Wake-up Sources прерывания INT и PCINT прописаны в одной колонке.
Вот и хочу понять это я что-то делаю неправильно или это просто невозможно при данном режиме сна.
Для отладки смени Sleep Mode на Idle и посмотри, разбудит, или нет. В Idle работают все источники побудки, так, что...
Re: Как разбудить 328P с помощью RTC и внешнего прерывания.
Добавлено: Пт июл 06, 2018 13:04:22
timklass
Все заработало! Это моя невнимательность, в обработчике прерывания выбрал не тот вектор (( Благодарю за помощь и советы!
