Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 09.02.2010, 22:28  
sbcentr
Прохожий
 
Регистрация: 09.06.2009
Сообщений: 9
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
sbcentr на пути к лучшему
По умолчанию Прерывание по внешнему reset Attiny2313

Здравствуйте уважаемые.
Мое устройство на тинке постоянно считает данные.
Пишу в CAVR.
Хотел сделать запись некоторых переменных в eeprom, по нажатию
кн reset(минус на первую ногу) с последующей перезагрузкой контроллера.
В CAVR прерывание по вектору 1 не реализовано.
Подскажите пожалуйста, как самому реализовать?
Заранее благодарен.
Реклама:
sbcentr вне форума  
Непрочитано 09.02.2010, 23:21  
_guardianangel
Почётный гражданин KAZUS.RU
 
Регистрация: 01.04.2009
Адрес: Рязань
Сообщений: 1,140
Сказал спасибо: 21
Сказали Спасибо 635 раз(а) в 344 сообщении(ях)
_guardianangel на пути к лучшему
По умолчанию Re: Прерывание по внешнему reset Attiny2313

При нажатии кнопки ресет на ATTiny2313 происходит безусловный ресет, счетчик команд обнуляется, сбрасывается все конфигурация, никакого обработчика сего прерывания быть не может. в вашем случае необходимо привязать кнопку записи к какомунить другому прерыванию, а в обработчике прерывания указать переход на нулевой адрес, ну или привязать какойнить свободный пин к ресету и пинать его после записи в еепром.
_guardianangel вне форума  
Непрочитано 10.02.2010, 15:56  
alexgap
Гражданин KAZUS.RU
 
Аватар для alexgap
 
Регистрация: 08.07.2006
Сообщений: 886
Сказал спасибо: 119
Сказали Спасибо 1,110 раз(а) в 177 сообщении(ях)
alexgap на пути к лучшему
По умолчанию Re: Прерывание по внешнему reset Attiny2313

Сообщение от _guardianangel Посмотреть сообщение
При нажатии кнопки ресет на ATTiny2313 происходит безусловный ресет, счетчик команд обнуляется, сбрасывается все конфигурация, никакого обработчика сего прерывания быть не может
Может касатик, может

Сброс и запуск программы в AVR происходит через нулевое прерывание. Сброс оставляет содержимое ОЗУ контроллера в том виде в каком оно было до сброса. В принципе, если пометить нужные переменные как неинициализируемые, то можно из них брать данные после сброса. Не знаю как это сделать в CVAVR, но в gcc - запросто с помощью атрибута.
alexgap вне форума  
Непрочитано 10.02.2010, 16:29  
atlab
Прописка
 
Регистрация: 18.06.2006
Сообщений: 179
Сказал спасибо: 1
Сказали Спасибо 13 раз(а) в 11 сообщении(ях)
atlab на пути к лучшему
По умолчанию Re: Прерывание по внешнему reset Attiny2313

Сообщение от alexgap Посмотреть сообщение
...Сброс оставляет содержимое ОЗУ контроллера в том виде в каком оно было до сброса...
Это где-то описано в документации, или это Ваши предположения?
Pls, укажите страницу даташита, я почитаю.
atlab вне форума  
Непрочитано 10.02.2010, 17:22  
baiderin
Почётный гражданин KAZUS.RU
 
Аватар для baiderin
 
Регистрация: 10.12.2007
Адрес: Екатеринбург
Сообщений: 2,731
Сказал спасибо: 2,454
Сказали Спасибо 893 раз(а) в 580 сообщении(ях)
baiderin на пути к лучшему
По умолчанию Re: Прерывание по внешнему reset Attiny2313

Регистр есть там MCUSR с флагами причин сброса.
baiderin вне форума  
Непрочитано 10.02.2010, 17:55  
_guardianangel
Почётный гражданин KAZUS.RU
 
Регистрация: 01.04.2009
Адрес: Рязань
Сообщений: 1,140
Сказал спасибо: 21
Сказали Спасибо 635 раз(а) в 344 сообщении(ях)
_guardianangel на пути к лучшему
По умолчанию Re: Прерывание по внешнему reset Attiny2313

Согласен что может ток процедуру инициализации всю переписывать ибо первое что делает компиль так это втыкает в самое начало кода процедурку обнуления памяти.
_guardianangel вне форума  
Непрочитано 10.02.2010, 18:46  
xerox2
Вид на жительство
 
Регистрация: 15.03.2005
Сообщений: 351
Сказал спасибо: 17
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
xerox2 на пути к лучшему
По умолчанию Re: Прерывание по внешнему reset Attiny2313

Чтобы такую фичу проделать в CVAVR нужно поиграться с "кучей" (heap) в настройках.
xerox2 вне форума  
Непрочитано 10.02.2010, 19:38  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Прерывание по внешнему reset Attiny2313

Сообщение от atlab Посмотреть сообщение
Это где-то описано в документации, или это Ваши предположения?
Это не предположения. Страница 36 в даташите на 2313 Rev. 2543I–AVR–04/06
Возможно есть свежее, и там на пару страниц номер может отличаться.
Раздел System Control and Reset -› Resetting the AVR
Цитата:
During reset, all I/O Registers are set to their initial values, and the program starts execution from the Reset Vector.
Никаких изменений в SRAM не производится. Надо всего лишь разобраться, как в CV получить неинициализируемую глобальную переменную. Можно конечно через malloc, но это приплюсует к программе некислый кусок диспетчера кучи. В нормальных же компиляторах это сделать несложно и без выделения динамической памяти. К примеру ГЦЦ:
Код:
uint16_t	volatile	ForeverVar  __attribute__ ((section (".noinit")));
kison вне форума  
Непрочитано 11.02.2010, 12:11  
makakus
Почётный гражданин KAZUS.RU
 
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
makakus на пути к лучшему
По умолчанию Re: Прерывание по внешнему reset Attiny2313

По кривому это. Вы получите сброс всех регистров таймеров, портов, буферного и сдвигового регистра UART и т.д. Сначала регистры будут сброшены, а потом Вы сможете понять, что это не включение питания, а ресет. Имхо ногу какую-нибудь проверять периодически будет прямее.
makakus вне форума  
Непрочитано 11.02.2010, 16:24  
atlab
Прописка
 
Регистрация: 18.06.2006
Сообщений: 179
Сказал спасибо: 1
Сказали Спасибо 13 раз(а) в 11 сообщении(ях)
atlab на пути к лучшему
По умолчанию Re: Прерывание по внешнему reset Attiny2313

Сообщение от kison Посмотреть сообщение
Это не предположения. Страница 36 в даташите на 2313 Rev. 2543I–AVR–04/06
Возможно есть свежее, и там на пару страниц номер может отличаться.
Раздел System Control and Reset -› Resetting the AVR
Цитата:
During reset, all I/O Registers are set to their initial values, and the program starts execution from the Reset Vector.
Никаких изменений в SRAM не производится....
Скачал самый свежий даташит. Поискал в нем. И по-прежнему не согласен.
То, что Вы процитировали, относится к I/O Registers и это явно указано, но не к SRAM. Причем процитированное Вами как раз говорит о том, что состояние I/O Registers после RESET не сохраняется, а придет в начальное состояние (оно описано в даташит).
Про сохранение содержимого SRAM явно упомянуто только, что оно сохраняется в SLEEP. Все.
Поэтому расчитывать на то, после RESET в переменных что-то сохранится, я бы не стал: исходить нужно из худшего, тогда сюрпризов не будет.

Последний раз редактировалось atlab; 11.02.2010 в 16:28.
atlab вне форума  
 

Закладки
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 22:02.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot