|
|
合泰單片機是硬件堆棧,8051是軟件堆棧,兩者是不一樣的 硬件堆棧是用硬件來進行堆棧操作的,它的層數是有限的,有的是四五層,有的是十多層 調用一次函數用一層,函數里面再調用一次其它函數就又用一層,這樣就用了兩層了(8051不需要在乎這個東西) 硬件堆棧就不一樣了,容易溢出 所以,合泰的C是不允許遞歸的,在中斷函數內盡量碼代碼,而不是通過函數來處理,能寫代碼就不調用函數(這個......跟C唱反調了) 盡可能的多調用幾個函數來處理,而不是調用的函數中又其它函數 比如:應該是這樣的: display() { aa(); bb(); cc(); } 而不是: display() { aa(); ------------- aa()函數里面包含了函數bb();和cc(); } 這樣使用的話就多用了幾層堆棧了 |