|
如果將顯示函數(shù)放在主函數(shù)的while里,里邊的5個(gè)變量全是局部變量,但是其功能也正常使用。
但當(dāng)我將顯示函數(shù)放在中斷里進(jìn)行掃描時(shí),發(fā)現(xiàn)顯示函數(shù)里邊的5個(gè)局部變量只有第一個(gè)調(diào)用的變量是正常的,其他幾個(gè)局部變量一直保持0x00無法操作,功能不正常。
然后我試著將局部變量都定義程序全局變量或者靜態(tài)變量,功能又正常了...最后又按上圖中的樣子,將digit定義單獨(dú)定義成靜態(tài),其他保持局部變量,功能也是正常的.....其他幾個(gè)uchar的變量沒有飛...
然后當(dāng)我直接用行參來進(jìn)行算數(shù)操作時(shí),功能也是不對(duì)的..只有把行參放到靜態(tài)變量里,再計(jì)算才正確.
還有我軟件調(diào)試的時(shí)候發(fā)現(xiàn),digit的值和實(shí)參是一致的,但是行參的值一直在亂跳,是調(diào)用并結(jié)束函數(shù)之后釋放了嗎
求各位大佬解惑....為啥用定時(shí)器調(diào)用這顯示函數(shù)就必須將其內(nèi)部變量設(shè)置為靜態(tài)或者全局,而在主函數(shù)的while中就沒遇到過這種問題.為什么不能直接調(diào)用行參,而需要先賦值...
|
|