1. 單片機輸出方波,觀測到方波有抖動,C程序很簡單,求分析
看到了你的程序和插圖。
你是打算讓T0在36個機器周期(大概是36us)中斷一次,輸出反相的波形。
但是,中斷,並不是嚴格按照機器周期的個數來發生的。
當主程序執行的時候,是一條一條的匯編語言指令,有些的指令是兩個機器周期的。
如果在執行「兩個機器周期的指令」期間,中間發生了定時器溢出,中斷並不會立即發生。
要等到「兩個機器周期的指令」執行完了,才會去執行中斷程序。
根據主程序當時的不同指令,中斷申請到中斷程序的進入,往往有3~8個機器周期。
這個數據,是有資料可以證明的。
當執行對中斷系統操作的指令時,耽誤的時間最長。
樓主看到的現象,其實是很正常的。
2. tds是什麼文件
1、 .tds文件是應用程序調試期間所生成的文件,可以安全的刪除。
2、「::」是范圍分解符。意思好像是調用當前類外的Sleep函數
tds 文件,是保存調試信息的。當一個Project打開時,tds 文件就不能刪除了。在IDE中
能夠調試的程序,關閉Project後,刪除tds文件,再次打開Project,運行程序(保證沒有
再次link),就會發現程序不能再被調試了(因為那個保存調試信息的tds文件刪除了)。
::是命名空間
比如Graphics::Bitmap是調用Graphics的Bitmap
當某個函數有多個實現時,如果你想調用API中的那個函數你就需要加個前面為空的::再寫函數名,這時就會調用API