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