AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
11.04.2018, 14:28
|
|
Гражданин KAZUS.RU
Регистрация: 26.12.2005
Сообщений: 596
Сказал спасибо: 24
Сказали Спасибо 68 раз(а) в 45 сообщении(ях)
|
RTC на ATMega48 - проблемы в работе
Ко мне обратился товарищ с проблемной работой RTC. Я лично с RTC не работал и помочь ему не смог. По его просьбе выкладываю проблему тут. Программа написана на Algorithm Builder, поэтому выкладывать ее нет смысла. Вот небольшой алгоритм её работы.
МК Atmega48P работает на внутреннем генераторе 8MHz, и с внешним часовым кварцевым резонатором на 32768Hz , в режиме счетчика реального времени (RTC).
При каждом переполнении таймера 2 (RTC) (8сек з прескалером=1024) МК “просыпается”, в обработке прерывания инкрементирует переменную-счетчик, сравнивает ее со значением 60 и если равно, то устанавливает флажок.
После выхода из прерывания проверяется флажок. При установленом флажке (а это должно быть 8 минут) идет на программу обработки. Если флажка нет, то опять ложиться “спать”.
Проблема в том, что флажок устанавливается через 1 минуту и 40 секунд вместо 8 минут. Т.е. впечатление такое, что программа вместо одного раза заходит в прерывание несколько раз и соответственно инкрементирует переменную-счетчик.
Если в прерывании поставить задержку 30 микросекунд, то все работает нормально. Но плата работает на батарейном питании и лишних 30 мксек работы здесь неуместны.
Что можете посоветовать?
|
|
|
|
11.04.2018, 19:07
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,020
Сказал спасибо: 3,026
Сказали Спасибо 3,200 раз(а) в 2,171 сообщении(ях)
|
Re: RTC на ATMega48 - проблемы в работе
1. Какое энергосбережение используется?
2. Все-ли "вонинги" в начале раздела "Asynchronous operation of Timer/Counter2" учтены?
__________________
Экзорцист 40-го уровня.
|
|
|
Эти 2 пользователя(ей) сказали Спасибо ForcePoint за это сообщение:
|
pifa (12.04.2018), ptr (12.04.2018) |
|
11.04.2018, 22:58
|
|
Гражданин KAZUS.RU
Регистрация: 26.12.2005
Сообщений: 596
Сказал спасибо: 24
Сказали Спасибо 68 раз(а) в 45 сообщении(ях)
|
Re: RTC на ATMega48 - проблемы в работе
Сообщение от ForcePoint
|
1. Какое энергосбережение используется?
|
Power-save (используется батарейка 2032)
Сообщение от ForcePoint
|
2. Все-ли "вонинги" в начале раздела "Asynchronous operation of Timer/Counter2" учтены?
|
Направил товарища в этот раздел. Сейчас он его изучает.
|
|
|
|
12.04.2018, 00:18
|
|
Гражданин KAZUS.RU
Регистрация: 26.12.2005
Сообщений: 596
Сказал спасибо: 24
Сказали Спасибо 68 раз(а) в 45 сообщении(ях)
|
Re: RTC на ATMega48 - проблемы в работе
Вот ответ моего товарища:
Все режимы установлены правильно, а вот обработка прерывания и код программы до входа в SLEEP, занимает 3,8мкс. Цикл TOSC1 равняется 30,51 мкс. Вот и результат из даташита (If re-entering sleep mode within the TOSC1 cycle, the interrupt will immediately occur and the device wake up again. The result is multiple interrupts and wake-ups within one TOSC1 cycle from the first interrupt).
Всем спасибо.
Получается, что так и должно быть.
P.S.
Спасибо ForcePoint за ссылку на datasheet. Надо всегда читать документацию до конца.
Правда, полезная информация была не в начале, а в конце раздела.
Последний раз редактировалось pifa; 12.04.2018 в 00:30.
|
|
|
Эти 2 пользователя(ей) сказали Спасибо pifa за это сообщение:
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:23.
|
|