[an error occurred while processing this directive]
Attiny15 - задолбал указатель стека, из подпрограмм возврат - только в начало программы !
(«Телесистемы»: «Конференция «Микроконтроллеры и их применение»»)
Причем, вложенность подпрограмм - не больше 3 - это соблюдается.
При проверках вложенности не было вообще - только один RET, и, все равно, результат - RJMP 0x0000 !!!!
На днях тут промелькнула дискуссия про такую же фигню в АТМеге - но там решение проще - есть ОЗУ, можно назначить SP в нужное место ОЗУ.
В АТТiny15 - ОЗУ- нет, стек полностью аппаратный, и командами - недоступен, Можно только видеть содержимое SP при отладке в AVR simulator, причем при отладке указывать проц как ATTiny22.
КАК БЫТЬ-ТО ? Трудно без подпрограмм, однако !
Спасибо !
Ответы
- Полный АТАС ! Еще упростил программу - и заработало ВСЕ! Отладчик в Studio - работает ! — Oldmanoff (16.04.2003 22:08, пустое)
- Ответ: Да, у нас тоже было, вылечилось установкой АВР Студии 4. — vesna4 (16.04.2003 19:29, пустое)
- Наиболее популярные грабли: — BLACKEAGLE (16.04.2003 18:58, 760 байт)
- Ответ: Из перечисленного - причина может быть только WDT (нужно проверить). Остального - просто нет из-за примитивности программы. Про AVR studio - см. ниже. — Oldmanoff (16.04.2003 19:20, пустое)
- Вот только залезть в сам стек либо его указатель (записью/чтением в/из регистров) в пятнашке уж никак низзя (даже если очень захотеть) :) — Щ.С. (16.04.2003 19:11, пустое)
- А переполнить его можно? — L.A. (16.04.2003 20:08, пустое)
- label: RCALL label ;) — BLACKEAGLE (16.04.2003 20:27, пустое)
- Я в смысле глубины стека(+) — L.A. (16.04.2003 20:40, 209 байт)
- Не кольцевой, но со стопором. Пихаем туда 1,2,3,4, выпихиваем 4,3,2,2,2...,2, т.е. 3 последних запиханных. — BLACKEAGLE (16.04.2003 21:19, 198 байт)
- Вероятно. Я и сам не пробовал, но десятки "reserved" SFR наводят на крамольную мысль ;) — BLACKEAGLE (16.04.2003 19:20, пустое)
- На основании чего такие выводы? — Щ.С. (16.04.2003 18:55, 284 байт)
- Ответ: А как насчет прерываний? — Bill (16.04.2003 18:51, пустое)
E-mail:
info@telesys.ru