|
|
 |
Ответов
|
Jun 19 2011, 15:15
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 2-06-11
Пользователь №: 65 445

|
Всем привет!!! Нуждаюсь вашей помощи! Вот пример кода. Код ldi r19,0x90 out spl,r19
ldi ZH,high(b) ldi ZL,low(b) s: icall b:brtc en rjmp s
en:sbr r18,252 set ldi ZH,high(e00) ldi ZL,low(e00) cpi r18,252 breq s ldi ZH,high(e01) ldi ZL,low(e01) cpi r18,253 breq s ldi ZH,high(e11) ldi ZL,low(e11) cpi r18,255 breq s ldi ZH,high(e10) ldi ZL,low(e10) cpi r18,254 breq s
e00:clt sbrc r18,0 inc r10 sbrc r18,1 dec r10 ret
e01:clt sbrc r18,0 inc r10 sbrs r18,1 dec r10 ret
e11:clt sbrs r18,0 inc r10 sbrs r18,1 dec r10 ret
e10:clt sbrs r18,0 inc r10 sbrc r18,1 dec r10 ret При первом ret видает уведомление AVR Simulator: Stack Underflow at 0x001eПодскажите, может надо указать сегмент кода и озу???
|
|
|
|
|
Jun 19 2011, 16:22
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 2-06-11
Пользователь №: 65 445

|
Цитата(Палыч @ Jun 19 2011, 19:12)  Ответ Вы найдёте сразу, если ответите на вопросы: 1) сколько раз выполнится команда ICALL до выполнения RET? 2) как и почему МК попал на команду RET? 1) Два раза. 2) Вишел из подпрограмы. По идее, в стеке до RET, сохранено два возврата, один с метки b,второй с метки e00Так о чем сообщает симулятор!? о повторном вызове ICALL ??
|
|
|
|
|
Jun 19 2011, 16:36
|

Гуру
     
Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954

|
Цитата(Shadovv13 @ Jun 19 2011, 20:22)  1) Два раза. 2) Вишел из подпрограмы. Этот код Код s: icall b:brtc en rjmp s выполнялся бы бесконечно, если бы стек не "наехал" на область регистров. Цитата(Shadovv13 @ Jun 19 2011, 20:22)  Так о чем сообщает симулятор!? о повторном вызове ICALL ?? Подумайте: может ли стек распологаться по указанному адресу?
|
|
|
|
|
Jun 19 2011, 17:31
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 2-06-11
Пользователь №: 65 445

|
Цитата(Палыч @ Jun 19 2011, 19:36)  Этот код Код s: icall b:brtc en rjmp s выполнялся бы бесконечно, если бы стек не "наехал" на область регистров. Подумайте: может ли стек распологаться по указанному адресу? Частично изменил код... Код s: brtc en b:icall rjmp s Уведомление осталось.... AVR Simulator: Stack Underflow at 0x001еКакой адрес указать для стека в ATmega8?
Сообщение отредактировал Shadovv13 - Jun 19 2011, 17:34
|
|
|
|
|
Jun 19 2011, 17:38
|

Гуру
     
Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954

|
Цитата(Shadovv13 @ Jun 19 2011, 21:31)  Частично изменил код... Код s: brtc en b:icall rjmp s Уведомление осталось.... Этот кусок кода будет выполнятся до тех пор, пока не изменится флаг T. Кто (какая команда) его изменит. P.S. Так и не понял Вашей программы, но, наверное, ошибка здесь: должна ли выполняться команда с меткой е00, если не выполнится условие перехода предыдущей команды (breq s)? Цитата(Shadovv13 @ Jun 19 2011, 21:31)  Какой адрес указать для стека в ATmega8? Обычно стек устанавливают так, как это сделано в примерах в DS Цитата $001 RESET:ldi r16,high(RAMEND); Main program start $002 out SPH,r16 ; Set Stack Pointer to top of RAM $003 ldi r16,low(RAMEND) $004 out SPL,r16
|
|
|
|
Сообщений в этой теме
Shadovv13 ATmega8 адресс метки Jun 2 2011, 17:45 rx3apf Цитата(Shadovv13 @ Jun 2 2011, 21:45) Ест... Jun 2 2011, 18:03 Shadovv13 rx3apf Вы не так поняли!
КодLabel1:
nop
... Jun 2 2011, 18:14 rx3apf Цитата(Shadovv13 @ Jun 2 2011, 22:14) Как... Jun 2 2011, 18:30 bbill ldi ZH,high(Label1)
ldi ZL,low(Label1)
icall Jun 2 2011, 18:31 Shadovv13 Спасибо большое щас опробуем!! Jun 2 2011, 18:42 alexeyv А не так ли надо корректно? :
Код ldi ZH, high... Jun 3 2011, 05:43 haker_fox QUOTE (alexeyv @ Jun 3 2011, 14:43) А не ... Jun 3 2011, 06:14 rx3apf Цитата(alexeyv @ Jun 3 2011, 09:43) А не ... Jun 3 2011, 07:39 нечитатель Код ldi ZH, high(JT * 2) ; *2 !... Jun 3 2011, 15:27 Shadovv13 Ну вот так все выглядит.
Кодldi r16,high(RAMEN... Jun 19 2011, 19:06 Палыч Цитата(Shadovv13 @ Jun 19 2011, 23:06) Мо... Jun 19 2011, 19:27 ae_ Цитата(Shadovv13 @ Jun 20 2011, 04:06) ..... Jun 20 2011, 14:07  Shadovv13 Цитата(ae_ @ Jun 20 2011, 17:07) Ваш фраг... Jun 20 2011, 15:09   Палыч Цитата(Shadovv13 @ Jun 20 2011, 19:09) Кт... Jun 20 2011, 15:39    Shadovv13 Цитата(Палыч @ Jun 20 2011, 18:39) В том ... Jun 20 2011, 15:54     Палыч Цитата(Shadovv13 @ Jun 20 2011, 19:54) Но... Jun 20 2011, 16:41      Shadovv13 Цитата(Палыч @ Jun 20 2011, 19:41) Огласи... Jun 20 2011, 17:09       Палыч Цитата(Shadovv13 @ Jun 20 2011, 21:09) По... Jun 20 2011, 18:59        Shadovv13 Цитата(Палыч @ Jun 20 2011, 21:59) И - чт... Jun 20 2011, 19:08         Палыч Цитата(Shadovv13 @ Jun 20 2011, 23:08) Мо... Jun 20 2011, 19:34          Shadovv13 Цитата(Палыч @ Jun 20 2011, 22:34) Ну, не... Jun 20 2011, 19:41           ae_ Shadovv13, Вы бы уже показали полный проект, в при... Jun 20 2011, 22:41            Палыч Цитата(ae_ @ Jun 21 2011, 02:41) подпрогр... Jun 21 2011, 04:26 Shadovv13 Обратите внимание что вначале стоит
Кодen:sbr ... Jun 19 2011, 19:54 Палыч Цитата(Shadovv13 @ Jun 19 2011, 23:54) зн... Jun 19 2011, 20:15 Shadovv13 Кодrjmp s разве что в последнем сравнении!
Ре... Jun 19 2011, 21:14 Палыч Цитата(Shadovv13 @ Jun 20 2011, 01:14) ра... Jun 19 2011, 21:32 Shadovv13 Если помните, как называлась тема с енкодером, дай... Jun 19 2011, 22:03 Палыч Цитата(Shadovv13 @ Jun 20 2011, 02:03) да... Jun 20 2011, 04:33  Shadovv13 Цитата(Палыч @ Jun 20 2011, 07:33) Вот, н... Jun 20 2011, 13:33 Shadovv13 Внес изменения. Полностью не исключает зависание ... Jun 21 2011, 09:13 Палыч Цитата(Shadovv13 @ Jun 21 2011, 13:13) Вн... Jun 21 2011, 09:59 Shadovv13 Поставил студию....
AVR Studio 4.18.684
GUI Ver... Jun 21 2011, 11:55 ae_ Цитата(Shadovv13 @ Jun 21 2011, 20:55) ВС... Jun 22 2011, 11:56
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|