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

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

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

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

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

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

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

 
Опции темы
Непрочитано 15.02.2013, 00:39  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Прерывания?

Да. Проект в архив (zip, rar) и в расширенном режиме скрепочка над окном редактора ответа.
Реклама:
omercury вне форума  
Непрочитано 15.02.2013, 00:49  
_guardianangel
Почётный гражданин KAZUS.RU
 
Регистрация: 01.04.2009
Адрес: Рязань
Сообщений: 1,140
Сказал спасибо: 21
Сказали Спасибо 635 раз(а) в 344 сообщении(ях)
_guardianangel на пути к лучшему
По умолчанию Re: Прерывания?

Сообщение от Senay76 Посмотреть сообщение
к сожаленею не получается загрузить.
можно ли это проверить другим способом
Проект смотреть надо. И у себя собрать попробовать.
_guardianangel вне форума  
Непрочитано 15.02.2013, 00:51  
Senay76
Частый гость
 
Регистрация: 19.10.2010
Сообщений: 35
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Senay76 на пути к лучшему
По умолчанию Re: Прерывания?

загрузил архив
Вложения:
Тип файла: rar Master.rar (47.5 Кб, 35 просмотров)
Senay76 вне форума  
Непрочитано 15.02.2013, 01:06  
_guardianangel
Почётный гражданин KAZUS.RU
 
Регистрация: 01.04.2009
Адрес: Рязань
Сообщений: 1,140
Сказал спасибо: 21
Сказали Спасибо 635 раз(а) в 344 сообщении(ях)
_guardianangel на пути к лучшему
По умолчанию Re: Прерывания?

В общем как и предполагалось - не создан обработчик прерывания. И все само собой сваливается в bad_interrupt. Замените ISR (TIMER1_COMPA_vector) на ISR (TIMER1_COMPA_vect). И по чаще заглядывайте в хидеры конкретного чипа - iousb1286.h и iousbxx6_7.h.
_guardianangel вне форума  
Сказали "Спасибо" _guardianangel
Senay76 (15.02.2013)
Непрочитано 15.02.2013, 01:09  
Senay76
Частый гость
 
Регистрация: 19.10.2010
Сообщений: 35
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Senay76 на пути к лучшему
По умолчанию Re: Прерывания?

_guardianangel, огромное спосибо, проблема решена.
Senay76 вне форума  
Непрочитано 15.02.2013, 01:14  
Senay76
Частый гость
 
Регистрация: 19.10.2010
Сообщений: 35
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Senay76 на пути к лучшему
По умолчанию Re: Прерывания?

_guardianangel, раскажите подробнее где вы "прочитали" что не создан обработчик прерывания? или подскажите где можно почитать об устранении таких проблем.
Senay76 вне форума  
Непрочитано 15.02.2013, 01:41  
_guardianangel
Почётный гражданин KAZUS.RU
 
Регистрация: 01.04.2009
Адрес: Рязань
Сообщений: 1,140
Сказал спасибо: 21
Сказали Спасибо 635 раз(а) в 344 сообщении(ях)
_guardianangel на пути к лучшему
По умолчанию Re: Прерывания?

Открываете файл листинга чем нить типа редактора аврстудии или блокнота на крайняк и смотрите созданную таблицу прерываний. И сверяете адреса с даташитом. По умолчанию gcc для всех прерываний делает один обработчик - bad_interrupt. Типа если Вы прерываний не заказывали, то любое прерывание ошибка. Этот обработчик тупо делает безусловный переход на нулевой адрес, по сути перезагружает контроллер. Если Вы описали какой либо обработчик то по адресу соответствующего вектора будет переход к обработчику. У Вас сиё выглядит так:
Код:
00000000 ‹__vectors›:
   0:	0c 94 4c 00 	jmp	0x98	; 0x98 ‹__ctors_end›
   4:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
   8:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
   c:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  10:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  14:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  18:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  1c:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  20:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  24:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  28:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  2c:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  30:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  34:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  38:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  3c:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  40:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  44:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  48:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  4c:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  50:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  54:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  58:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  5c:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  60:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  64:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  68:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  6c:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  70:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  74:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  78:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  7c:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  80:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  84:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  88:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  8c:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  90:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
  94:	0c 94 6b 00 	jmp	0xd6	; 0xd6 ‹__bad_interrupt›
Это таблица прерываний, везде безусловный переход по адресу 0xD6, там размещен обработчик __bad_interrupt. Выглядит он так:
Код:
000000d6 ‹__bad_interrupt›:
  d6:	0c 94 00 00 	jmp	0	; 0x0 ‹__vectors›
Сравните с исправленным проектом и поймете в чем различие, там по одному из адресов таблицы прерываний будет переход к обработчику ISR (TIMER1_COMPA_vect).
Кстати заодно и посмотрите как прерывание отрабатывается. Только вот асм под AVR подучить придётся.
_guardianangel вне форума  
Непрочитано 15.02.2013, 02:24  
Senay76
Частый гость
 
Регистрация: 19.10.2010
Сообщений: 35
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Senay76 на пути к лучшему
По умолчанию Re: Прерывания?

теперь стало более мене ясно, но детально разбираться буду завтра.
еще раз спосибо за помощь
Senay76 вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прерывания в LPC21xx Vitek_S Микроконтроллеры, АЦП, память и т.д 1 30.05.2009 22:34
Прерывания в AVR uk8amk Микроконтроллеры, АЦП, память и т.д 3 17.10.2008 14:25
Прерывания AT89C2051 awix Микроконтроллеры, АЦП, память и т.д 6 21.09.2008 20:57
Прерывания на atmega8 klim Микроконтроллеры, АЦП, память и т.д 4 16.09.2008 11:05
Прерывания в ATmega128 Святослав Микроконтроллеры, АЦП, память и т.д 2 10.02.2006 16:28


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


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