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

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

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

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

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

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

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы
Непрочитано 02.01.2016, 12:57  
alxchep
Почётный гражданин KAZUS.RU
 
Аватар для alxchep
 
Регистрация: 29.01.2007
Адрес: Пермский край
Сообщений: 1,596
Сказал спасибо: 418
Сказали Спасибо 1,363 раз(а) в 513 сообщении(ях)
alxchep на пути к лучшему
По умолчанию Работа с флагами сброса Tiny45

Здравствуйте всем!!!!
С праздниками!!!
За выходные решил добить старую задумку и встал в тупик. Железка - дверной звонок с управлением видеоглазком с 2-мя камерами и управление подсветкой. Из-за нехватки ног 45-й использовал Reset для выхода из сна и запуска основной программы. Лабораторная работа, проведённая на рабочей плате с её питанием и цепями Reset'а (вывод MCUSR на ноги, на светодиоды) показала чёткое появление флага EXTRF и отсутствие других флагов после каждого нажатия кнопки сброса, после подачи питания флаги выставляются произвольно, но обязателен PORF. На чём и основано такое ветвление:
Код:
	in	r16, MCUSR
	clr	r17
	out	MCUSR, r17          ; clear flags
	andi	r16, 0b00000101     ; power and bor reset flags
	brne	not_play             ; power on - not music
   play:
...
...
   not_play:
...
        sleep
отчистку флагов добавил уже от безисходности, на плате, раз из пяти нажатий сброса, улетает сразу в "not_play" или ещё куда, но не на основную программу.
До этого куска кода только инициализация портов, прерывания ещё не разрешены. Подскажите, куда копнуть, где я лоханулся?

P.S. чёто в листинге "лишние" пробелы съедает.
Реклама:

Последний раз редактировалось alxchep; 02.01.2016 в 15:54.
alxchep вне форума  
Непрочитано 02.01.2016, 13:54  
ForcePoint
Почётный гражданин KAZUS.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,000
Сказал спасибо: 3,017
Сказали Спасибо 3,191 раз(а) в 2,164 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: работа с флагами сброса Tiny45

1. В реале или в симуляторе?
2. Не вполне ясно, сейчас уже !Reset используется как ввод-вывод или ещё нет?
3. Используется-ли сторожевой таймер? Если да, то его надо сбросить после чтения MCUSR, т.к. если (WDRF==1) & (WDTON==unprogrammed), то сторожевой таймер разрешается автоматически (см. в описании бита WDE - "Bit 3 – WDE: Watchdog Enable").
4. Есть возможность вывести состояние MCUSR (эмулятор)?

Сообщение от alxchep Посмотреть сообщение
P.S. чёто в листинге "лишние" пробелы съедает.
Используйте тэг CODE.
ForcePoint на форуме  
Сказали "Спасибо" ForcePoint
alxchep (02.01.2016)
Непрочитано 02.01.2016, 16:01  
alxchep
Почётный гражданин KAZUS.RU
 
Аватар для alxchep
 
Регистрация: 29.01.2007
Адрес: Пермский край
Сообщений: 1,596
Сказал спасибо: 418
Сказали Спасибо 1,363 раз(а) в 513 сообщении(ях)
alxchep на пути к лучшему
По умолчанию Re: работа с флагами сброса Tiny45

1. в реале.
2. Reset прошит и используется как сброс, просто основная часть программы начинается с вектора Reset. Оно сделало ненужным сторожевой таймер, есть возможность н.в. программирования, функционал не страдает.
3. Собака не используется, не разрешена фьюзом.
4. Эмулятора нет, для понимания, что делается в MCUSR специально делал лабу, короткая прога, читает MCUSR в регистр, регистр на PORT. На выводы повешены светики. Лаба делалась на боевой плате, с её цепями питания и сброса.
alxchep вне форума  
Непрочитано 02.01.2016, 21:26  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Работа с флагами сброса Tiny45

Что-то делаете не так, или палёные контроллеры
Этот код 100% определяет Ресет по ноге ресета, работает на сотнях плат

niXto вне форума  
Непрочитано 02.01.2016, 21:54  
ForcePoint
Почётный гражданин KAZUS.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,000
Сказал спасибо: 3,017
Сказали Спасибо 3,191 раз(а) в 2,164 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: Работа с флагами сброса Tiny45

Сообщение от alxchep Посмотреть сообщение
Лабораторная работа, проведённая на рабочей плате с её питанием и цепями Reset'а (вывод MCUSR на ноги, на светодиоды) показала чёткое появление флага EXTRF и отсутствие других флагов после каждого нажатия кнопки сброса, после подачи питания флаги выставляются произвольно, но обязателен PORF.
Если временами попадался и WDRF, то приходим к пункту 3 про автоматическое разрешение сторожевого таймера.

Сообщение от alxchep Посмотреть сообщение
2. Reset прошит и используется как сброс, просто основная часть программы начинается с вектора Reset. Оно сделало ненужным сторожевой таймер, есть возможность н.в. программирования, функционал не страдает.
Не совсем понял, но, думаю, сначала надо исключить пункт 3. Поставьте принудительный сброс сторожевого таймера.
ForcePoint на форуме  
Непрочитано 02.01.2016, 23:54  
alxchep
Почётный гражданин KAZUS.RU
 
Аватар для alxchep
 
Регистрация: 29.01.2007
Адрес: Пермский край
Сообщений: 1,596
Сказал спасибо: 418
Сказали Спасибо 1,363 раз(а) в 513 сообщении(ях)
alxchep на пути к лучшему
По умолчанию Re: Работа с флагами сброса Tiny45

Сообщение от niXto Посмотреть сообщение
Что-то делаете не так, или палёные контроллеры
мда, завтра попробую вообще исключить кусок с проверкой, другого контроллера под рукой нет, до магазина далеко.
Сообщение от ForcePoint Посмотреть сообщение
Если временами попадался и WDRF
нет, имел ввиду остальные три флага. Чаще выставляются вместе BORF и PORF, иногда только PORF, иногда три вместе.

.... Усё.
я её нашёл. Не смотря на запрет прерываний, INT0, подтянутый внутренним резистором, иногда срабатывал. Помогла наружная подтяжка резистором к "+".

Последний раз редактировалось alxchep; 03.01.2016 в 16:07.
alxchep вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FAQ (ЧаВО) по PROTEUS для начинающих и не только dosikus Proteus 221 07.03.2024 22:45
HD6303XP непонятная работа контроллера andrey3824 Коллекция глюков 2 03.08.2014 08:19
ADSP-2181 сигнал сброса Theli Цифровые сигнальные процессоры 4 09.02.2011 11:53
Напряжённая работа Roshens Отвлекитесь, эмбеддеры! 8 01.09.2010 23:08


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


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