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