LPC21xx C程序的精確延時方法
2.3 使用反匯編工具計算延時時間
對于不熟悉示波器但熟悉匯編語言,并且了解指令周期的開發(fā)人員來說,可以用ADSl.2中AXD Debugger的反匯編工具計算延時時間。在反匯編窗口中可用源程序和匯編程序的混合代碼或匯編代碼顯示目標(biāo)應(yīng)用程序,再根據(jù)每條指令周期計算出結(jié)果。例如:
其反匯編結(jié)果如圖7所示。
這種方法最直觀,但是要求開發(fā)人員熟練掌握匯編語言及指令周期,并且理解流水線及Cache的工作原理等,需要花費大量的精力,而且指令周期只對低端單片機有用。因此,對于初學(xué)者這種方法不可取。
結(jié)語
掌握延時程序的編寫,能夠使程序準(zhǔn)確得以執(zhí)行,這對學(xué)習(xí)和項目開發(fā)有著重要的意義。本文介紹了LPC21xx系列微控制器的幾種計算延時程序執(zhí)行時間并實現(xiàn)精確延時的方法。使用定時器進行延時是最佳的選擇,可以提高CPU工作效率。在使用系統(tǒng)管理任務(wù)時,可以選擇使用系統(tǒng)延時函數(shù);在不使用嵌入式系統(tǒng),無法使用定時器而又需要實現(xiàn)比較精確的延時時,其他幾種方法可以實現(xiàn)不等時間的延時。
寫延時程序是一項很麻煩的任務(wù),可能需要多次修改才能滿足要求,以上介紹只是提供了一些精確延時的方法,在使用時需視情況而定。
評論