Ответ: примерно так:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено -Tумблер- 15 декабря 2004 г. 16:15
В ответ на: Да не задать, а узнать де-факто :) отправлено Member 15 декабря 2004 г. 16:00


поиск глубины вложения стека - это не что иное, как поиск
экстремума (мин. или макс., зависит от процессора).
Делается очень просто.
например:
#ifdef STK_RESEARCH
byte stk_; // это все зависит от процессора. Допустим, у меня так. :)
#endif

void main (void)
{
#ifdef STK_RESEARCH
stk_ = SP;
#endif
.
.
.
// какой то главный цикл программы
for (;;)
{
.
.
.
#ifdef STK_RESEARCH
type_byte (stk_);
#endif
}
}

В какой - нибудь наиболее "глубокой" процедуре прерывания
(очевидно в таймерной - системных часах):

void interrupt ..... TIM0 (void)
{
.
.
#ifdef STK_RESEARCH
if(stk_ < SP) stk_ = SP; // зависит от "направления" вложения в стек
// в данном случае ищем максимум. Допустим, у меня так. :)

#endif
.
.
}


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru