
計數與計時
- 如何測量頻率 --- 測量固定周期數的時間,這需要用到計數與計時。在相同的system clock,計數周期數越多則測量的解析度越高,其結果也越精確,但量測的時間就越久。
- 計數 --- 使用Mcu內建 TIMER0 (8bits) 作為計數LC諧振周期,並且將預分頻器(Prescaler)設為1:256。所以最多可計數:
- 計時 --- 使用Mcu內建 TIMER1 (16bits) 作為計時器,預分頻器(Prescaler)設為1:1,並且設一8bits的變數作為計數 TIMER1 溢位次數。TIMER1的時鐘速度為 4MHz / 4,故;最長的計時時間為 :(實際上只需用到約4.2sec)
- TIMER0 與 TIMER1 --- 如下圖,TSTOP - TSTART = LC週期時間*65536(usec)

改寫諧振公式
在校準與公式一篇所推導出的公式均以頻率(Hz)為運算元,現將頻率換算為週期時間(sec)並改寫公式。
- 設:f1 的週期時間為 t1,f2 的週期時間為 t2。
- formula (a)
技巧
- 設 T1與T2 為 t1與t2 的65536次週期時間 ( 註:T1與T2 的單位是 usec ),則
- 由 formula (a) 改寫為 formula (a1)
- 由 formula (b) 改寫為 formula (b1)
- 由 formula (c) 改寫為 formula (c1)
浮點運算
由於二進制浮點數(float)不能表達所有的實數 (參考 : Wiki ),只能表示最接近的可表達數。即;浮點數及運算可能存在誤差,但這些誤差量必定趨於最小。例如:將某一存在誤差的二進制浮點數轉為十進制,其誤差部分必定在於十進制數的最右邊。故;formula (a) 與 formula (b) 必須再改寫,期使減少浮點運算的誤差。
- 由 formula (a1) 改寫為 formula (a2)
- 由 formula (b1) 改寫為 formula (b2)
常數
formula (c1) 的尾部是一段常數。這常數可預先計算帶入算式,這樣可以免去一些Mcu運算工作。設 常數為 ARG3
- 由 formula (c1) 改寫為 formula (c2)
減少Mcu運算
formula (a2)、(b2) 與 (c2) 中的 T1、ARG3與C,均在校準時可得知。為免去後續量測時重覆計算相同的運算,故將公式中的部分修改如下。- 設:
- 由 formula (a2) 改寫為 formula (a3)
- 由 formula (b2) 改寫為 formula (b3)
- 由 formula (c2) 改寫為 formula (c3)
沒有留言:
張貼留言