Как разбудить 328P с помощью RTC и внешнего прерывания.

Обсуждаем контроллеры компании Atmel.
Ответить
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 27
Зарегистрирован: Вт янв 26, 2016 15:58:05
Откуда: Ленинград

Сообщение timklass »

Всем привет! Стоит задача разбудить Atmega328P из power down с помощью часов реального времени (в момент срабатывания будильника нога INTA/INTB переходит в низкое состояние) с использованием внешних прерываний. Загвоздка состоит в том, что INT0 и 1 заняты кнопками, которые тоже будят микру по необходимости. Возможно ли пробуждение из сна от PCINT.. или только INT0, 1?

Если нет, я так понимаю, кнопки нужно вешать на один INT через диоды, а другой INT освобождать для RTC. По аналогии со схемой http://avrproject.ru/more_int/132.png
Реклама
afz
Опытный кот
Аватара пользователя
Сообщения: 744
Зарегистрирован: Сб дек 22, 2012 08:17:42
Откуда: Караганда, Казахстан

Сообщение afz »

Вообще--то у 328-й Меги, кроме INT0 и INT1 еще есть и штук 20 PCINTnn (Pin Change INTerrupt), т.е. любой пин GPIO может быть использован для прерывания по изменению его состояния. И эти самые PCINT в ДШ заявлены, как средство пробуждения из Power Down. Я, правда, еще не вникал в использование этих самых PCINT, но в ДШ, вроде-бы, все описано довольно понятно.
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
Реклама
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 27
Зарегистрирован: Вт янв 26, 2016 15:58:05
Откуда: Ленинград

Сообщение timklass »

Да, но поиск в интернете показал, что заявления по такому способу противоречивы, кто-то уверяет, что можно будить, кто-то нет. Мол, это не для глубокого сна. У меня пока не получается разбудить через PCINT. Вот и хочу понять это я что-то делаю неправильно или это просто невозможно при данном режиме сна.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18678
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

timklass писал(а):Да, но
никаких но, в даташите (раздел 14.6) сказано без всяких но:
Изображение
Вложения
Screenshot 2018-07-06 13.31.47.png
(27.84 КБ) 754 скачивания
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
afz
Опытный кот
Аватара пользователя
Сообщения: 744
Зарегистрирован: Сб дек 22, 2012 08:17:42
Откуда: Караганда, Казахстан

Сообщение afz »

заявления по такому способу противоречивы, кто-то уверяет, что можно будить, кто-то нет.
Даташит на эту тему гласит однозначно: можно. Таблица 14-1 на стр. 62, там в секции Wake-up Sources прерывания INT и PCINT прописаны в одной колонке.
Вот и хочу понять это я что-то делаю неправильно или это просто невозможно при данном режиме сна.
Для отладки смени Sleep Mode на Idle и посмотри, разбудит, или нет. В Idle работают все источники побудки, так, что...
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
Реклама
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 27
Зарегистрирован: Вт янв 26, 2016 15:58:05
Откуда: Ленинград

Сообщение timklass »

Все заработало! Это моя невнимательность, в обработчике прерывания выбрал не тот вектор (( Благодарю за помощь и советы! :))
Реклама
Ответить

Вернуться в «AVR»