在使用單片機定時器進行計時設置的過程中,出現(xiàn)設置錯誤的情況是在所難免的,這就需要我們采取一些方法對已經(jīng)造成的錯誤進行糾正了。由于單片機的機器周期通常為1μs~2μs,因此定時誤差一般應在0μs~20μs之內(nèi),對于一般應用,此誤差可以忽略,但是對于精確度要求比較高的應用場合,此誤差必須進行校正。定時誤差是定時溢出后轉(zhuǎn)入執(zhí)行定時處理語句段之間所耗費的時間,此時間主要由定時溢出轉(zhuǎn)入定時處理語句段所必須執(zhí)行的指令或硬件過程產(chǎn)生。
定時誤差校準的一個比較簡單的方法式,在定時溢出響應后,立刻停止定時器的計數(shù)工作,同時快速讀出當時計數(shù)值,然后將完成這一任務的程序段執(zhí)行時間考慮進去,作為修正因子校正定時初值,以下程序段以中斷處理方式為例來進行說明。需要注意的是,由于執(zhí)行從指令clrtr0(停止計數(shù))到指令setbtr0(重新開啟計數(shù))之間的指令需8個機器周期,應將此消耗考慮進去,因此該程序?qū)⒍〞r誤差縮小在1個機器周期內(nèi)。