Delay程式 延遲的時間和你所使用的指令週期與Delay方法有關我看你的圖片事阻塞式延遲,原理就是跑空指令,根據芯片不同每一個指令都需要花費數個指令週期
你的Delay在副程式中視兩個空的迴圈函數,裡面的for(i=0;i<y;i++) 中的y代表你每次執行會跑幾個空迴圈
,whie(x--) 中的x 是你可以輸入的變數,意思是你要跑幾次for迴圈 , 如果你輸入x,那你執行空迴圈的次數就是x*y次,如果你輸入x=3800那
,就是執行了3800*y次迴圈空迴圈.
如果使用這種方式來來完成Delay你可以去看你芯片執行指令需要多少時間來計算實際的延遲時間,會者用其他發法一個一個嘗試來確定執行1次for迴圈需要多久.
當然用這種方式時間不會太準確,如果時間要求精度高可以選擇使用TIM,或改用組合語言.
|