Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
02.03.2010, 02:28
|
|
Частый гость
Регистрация: 05.05.2007
Сообщений: 44
Сказал спасибо: 8
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Mega16 нужна помощь
Доброго времени суток. Нужна помощь, мозги уже закипают. Перебрал всё и саму прогу, и даташит, и прикрепляемый файл m16def.inc. Нужно организовать временные промежутки на таймерах, к примеру для часов. На тиньке2313 всё ок получалось, а на меге не идёт. Вместо перехода в нужное время на нужном векторе прерывания стрелка AVR studio в режиме симуляции оказывалась на этой строчке:
nop ;rjmp ADCC ;ADC Interrupt Vector Address
или на этой:
nop ;rjmp URXC ;UART Receive Complete Interrupt Vector Address.
Подскажите что я не так сделал. Исходник прикрепляю.
|
|
|
|
02.03.2010, 02:35
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Mega16 нужна помощь
Замените rjmp на jmp.
Вектора в М16 по два слова, так что пропуск вектора это два nop-a, а не один как у Вас сделано.
|
|
|
|
02.03.2010, 02:41
|
|
Частый гость
Регистрация: 05.05.2007
Сообщений: 44
Сказал спасибо: 8
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Mega16 нужна помощь
Спасибо заработало. Блин а почему так сделано? Что два слова на вектор? Случаем не из-за того что идёт адресация памяти двухбайтная
|
|
|
|
02.03.2010, 02:44
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Mega16 нужна помощь
Сообщение от Alex_Megavolt_79
|
Блин а почему так сделано? Что два слова на вектор?
|
Потому, что rjmp банально не обеспечивает переход по всей доступной памяти. Ее диапазон +-2 килослова == +- 4 килобайта. Так что при флеши ›8 килобайт нужно уже использовать jmp.
|
|
|
|
02.03.2010, 02:44
|
|
Почётный гражданин KAZUS.RU
Регистрация: 01.04.2009
Адрес: Рязань
Сообщений: 1,140
Сказал спасибо: 21
Сказали Спасибо 635 раз(а) в 344 сообщении(ях)
|
Re: Mega16 нужна помощь
Все просто в тиньке разница в адресах соседних прерываний 1 слово (2 байта) по этому затычка nop работает. В 16 меге между векторами прерываний разница 2 слова (байта). по этому в качестве затычки следует использовать по 2 nop. А в качестве перехода на обработчик прерываний команду jmp. Или дописать по nop после каждого Вашего rjmp.
Пример прилагается
|
|
|
Сказали "Спасибо" _guardianangel
|
|
|
02.03.2010, 02:46
|
|
Частый гость
Регистрация: 05.05.2007
Сообщений: 44
Сказал спасибо: 8
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Mega16 нужна помощь
А ещё вопрос можно? Сторожевой таймер всё равно сбрасывает через 2 сек. Вроде правильно инициализировал верно и в основном блоке сбрасывает регистр таймера
|
|
|
|
02.03.2010, 02:48
|
|
Частый гость
Регистрация: 05.05.2007
Сообщений: 44
Сказал спасибо: 8
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Mega16 нужна помощь
спасибо после поста kison допетрил что нужно две команды nop ставить
|
|
|
|
02.03.2010, 02:50
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Mega16 нужна помощь
Сообщение от Alex_Megavolt_79
|
А ещё вопрос можно? Сторожевой таймер всё равно сбрасывает через 2 сек.
|
Это в железе или в симуляторе?
|
|
|
|
02.03.2010, 02:51
|
|
Частый гость
Регистрация: 05.05.2007
Сообщений: 44
Сказал спасибо: 8
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Mega16 нужна помощь
В симуляторе конечно, до железа не дошёл пока
|
|
|
|
02.03.2010, 02:58
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Mega16 нужна помощь
В симуляторе ватчдог поддержан криво и неполностью. Где то в хелпе к студии о этом написано. Да и смысла от него в симуляторе нет.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 13:24.
|
|