定時器T1初始化代碼如下(AVR-GCC):
其中宏定義Tp=0;Tt=1;需要定義數組:
uint16_t timeL[2],timeH[2],counter[2]
當測量時間超過定時器最長計時時,定時器會溢出,定時器T1溢出中斷函數代碼如下:
最后通過查表法就可以得到測量的溫度。查表溫度間隔一般為1℃,如果忽略熱敏電阻1℃以內的非線性誤差,可以將兩攝氏度之間取線性計算,這樣可以得到0.1℃的分辨率。
5 結 語
筆者應用該方法已設計出一款溫度計,在范圍-10~80℃時,分辨率達到0.1℃,誤差在0.5℃以內。本文充分利用了AVR的捕獲功能,使得電路簡潔,成本低廉。
評論