ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
6 мая
149865 Топик полностью
MBedder, терминатор (03.03.2009 11:27, просмотров: 200) ответил Начинающий на Здраствуйте подскажите пожалуйсто! Проблемы со стеком AtMega 2561
После rcall CONNECT_PROV у тебя нарушается баланс стека, т.к. RESTART получает управление не через call, а напрямую Естественно, его RET приводит к POP без PUSH, отчего все и сбрасывается. На будущее - пиши сразу в профильную конфу (AVR) и пользуйся кнопкой asm для правильного и красивого форматирования кода: .LISTMAC .CSEG .org 0x0000 rjmp RESET ;Reset Handler .... RESET: cli ldi TMP_1,high(RAMEND) out SPH,TMP_1 ldi TMP_1,low(RAMEND) out SPL,TMP_1 ldi TMP_1,0xAA sts LAST_ADDR,TMP_1 rcall RESTART ;переходим в вызвоную п/п а возращаясь из этой п/п поподаемять в н строчку .org 0x0000 rcall CONECT_PROV RESTART: ..... ret