这个芯片比较陈旧,堆栈层级比较少。所以在使用时候,要特别小心。在函数调用时,要注意层级。比如这样一个调用关系:
Main() ->LEDdisp()-> DISPIC()->WRITEIC()
这里看着没有超过4层。但是还要考虑到,在中断被触发时,也要使用到一层堆栈,来保护中断断点。所以就会导致堆栈层级超出。
当我们把函数调用改成3层时,
Main() ->LEDdisp()->WRITEIC() 3层 给堆栈留一个层。 刚好满足。
但是若在中断内又调用函数的话,又会导致栈的层级不够。