реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Помогите выяснить причину прерываний!, Интиресная вещь.. Контроллер отвлекаеться!
Шалапут:-)
сообщение Nov 28 2008, 12:12
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 11-01-07
Пользователь №: 24 303



Всем привет, пишу программку для обмена по 1-wire на асме.

После компиляции отправляю её в МК ATmega16 с пом. JTAG mkII. Для отладки пользую его же..
и первое прерывание, которое происходит, так это прерывание готовности ЕЕПРОМа. ЕЕПРОМу я запретил делать прерывания в начале программы, да и если просто не инициализировать его, и не трогать его регистры, прерывание не должно случиться.

Тот же код при тестировании в симуляторе никогда не попадает на те же брейкпоинты, что при отладке джитагом.

строка в коде, на которую происходит неверный переход:

reti // происходит прерывание??? от ЕЕпром?

код в приложении.. Кто сталкивался с таким?
Еррата к 16-й меге выглядит так:

ATmega16(L) Rev. G. There are no errata for this revision of ATmega16.
ATmega16(L) Rev. H. There are no errata for this revision of ATmega16.

так что, надеюсь, проблема не в МК.



Цитата(Шалапут:-) @ Nov 28 2008, 14:10) *
так что, надеюсь, проблема не в МК.

Проблема не в МК.
просто я самоучка biggrin.gif

Нашел причину... Как оказалось, дело в определениях регистров.. точнее - в неверном определении.
после
.cseg
.org $0000

нельзя писать .equ .def
Тут фрагменты кода:
Код
Как "ненадо делать":
.cseg
.org $0[/b]
.def res_counter=r17
.equ reset_flag = $0100
.equ past_state = $0101
.equ bit_counter= $0102

jmp    start        ; Reset handler
reti //int_0
reti //int_0


и "Как работает":
Код
.include "m16def.inc"
.def res_counter=r17
.equ reset_flag = $0100
.equ past_state = $0101
.equ bit_counter= $0102

.cseg
.org $0
jmp    start        ; Reset handler
reti //int_0
reti //int_0

;)

Сообщение отредактировал Шалапут:-) - Nov 28 2008, 12:13
Прикрепленные файлы
Прикрепленный файл  ______slave.txt ( 3.28 килобайт ) Кол-во скачиваний: 108
 


--------------------
Роботы делают роботов - предел автоматизации
Go to the top of the page
 
+Quote Post
Herz
сообщение Nov 28 2008, 21:15
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287



a14.gif На написание поста, наверное, ушло больше времени, чем на поиск ошибки...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st June 2025 - 00:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.01338 секунд с 7
ELECTRONIX ©2004-2016