|
Файл Def и прерывание таймера |
|
|
|
Mar 18 2008, 13:21
|

Профессионал
    
Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339

|
Всем здравствуйте!
Хоть на форуме зарегестрировался давно , но всё таки хотелось , для начала , научиться и постораться разобраться самому . Так, что постепенно постигаю AVR B вот возник вопрос в котором я , что-то "застрял" . Пишу программку, где есть прерывание от таймер.счётчика по переполнению . Согласно Datasheet адреса прерываний ( от всех устройств ) я в программе благополучно пропустил т.е. cseg начинается с адреса 0x003E . За TIM2_OVF зарезервировано 0x0016 - правда в файле DEF .equ OVF2addr = 0x0016 ; Timer/Counter2 Overflow имеется вот такая связка. Я пробывал подставлять и этот операнд в JMP , но асемблер всё равно выдаёт ошибку C:\Program Files\Atmel\AVR Tools\project\wire.asm(22): error: syntax error, unexpected SYMBOL, expecting REGISTER Помогите понять в чём дело?
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
|
 |
Ответов
|
Mar 19 2008, 10:12
|

Профессионал
    
Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357

|
Цитата(domowoj @ Mar 18 2008, 16:44)  .CSEG .ORG 0 rjmp Reset nop;rjmp EXT_INT0; nop;rjmp PC_INT; rjmp TIM1_COMPA rjmp TIM1_ovf rjmp TIM0_OVF Ужас, вы всегда так пишите? А если придется перейти на другой проц, у которого вектора в других адресах? Обычно пишут так: .CSEG .ORG 0 rjmp Reset .ORG OVF2addr rjmp Int_Tmr2 .ORG ANOTHER_DEVaddr rjmp Int_AnotherDev ... .CSEG Reset: ldi r16, LOW(RAMEND) out SPL, r16 ; установка стека ... Int_Tmr2: ... ; обработка прерывания таймера ... При этом численное значение адреса, по которому окажется метка Reset вас абсолютно не должно волновать (это уже к автору темы).
|
|
|
|
|
Mar 19 2008, 10:28
|

Профессионал
    
Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339

|
Цитата(777777 @ Mar 19 2008, 13:12)  Ужас, вы всегда так пишите? А если придется перейти на другой проц, у которого вектора в других адресах? Обычно пишут так:
.CSEG .ORG 0 rjmp Reset .ORG OVF2addr rjmp Int_Tmr2 .ORG ANOTHER_DEVaddr rjmp Int_AnotherDev ...
.CSEG Reset: ldi r16, LOW(RAMEND) out SPL, r16 ; установка стека ...
Int_Tmr2: ... ; обработка прерывания таймера ...
При этом численное значение адреса, по которому окажется метка Reset вас абсолютно не должно волновать (это уже к автору темы). Извините, но я не очень понялкому это было адресовано , ибо приведённый фрагмент -указанный Вами мне не принадлежит (ILYAUL) но за науку лично от меня Спасибо!
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
Сообщений в этой теме
ILYAUL Файл Def и прерывание таймера Mar 18 2008, 13:21 Дон Амброзио Ничего не понял.. Как-то путанно объясняешь..Приве... Mar 18 2008, 13:28 GDI ЦитатаC:\Program Files\Atmel\AVR To... Mar 18 2008, 14:53 ILYAUL Добрался до дома , так , что извините за задержку
... Mar 18 2008, 17:41 Дон Амброзио Цитата(ILYAUL @ Mar 18 2008, 20:41) Вот и... Mar 18 2008, 17:50  ILYAUL Цитата(Дон Амброзио @ Mar 18 2008, 20:50)... Mar 18 2008, 17:57   Дон Амброзио Цитата(ILYAUL @ Mar 18 2008, 20:57) для у... Mar 18 2008, 23:38   SasaVitebsk Цитата(ILYAUL @ Mar 18 2008, 21:57) Да я ... Mar 18 2008, 23:51
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|