關於這個問題,若時分秒要分開計算,會有進位上的判斷問題(分秒是60進位),只會讓程式更複雜


基於上述的原因,不使用系統時間元件Seconds To Date/Time,採用另一個計時元件Tick Count (ms)來計時


Tick Count (ms)元件的計時單位是微秒(ms),也就是千分之一秒,所以程式一開始是把時分秒的設定數值全計算改變為微秒,統一計時的單位


方法是把時的數值乘以3600000(1小時等於3600000微秒),把分的數值乘以60000(1分鐘等於60000微秒),把秒的數值乘以1000(1秒等於1000微秒),相乘完畢後全部相加

 

輸入時分秒的數值元件要全部改成U32的數值格式(LabVIEW計時用的數值格式),比較不會有數值溢位的問題

 

輸入的數值元件有加上設定避免輸入太離譜的數值,方法是從數值元件的Properties去修改屬性,時的元件限制為0到23,分和秒的元件限制為0到59

 

計時的部份用2個Tick Count (ms)元件,1個在迴圈外,另1個在迴圈內,用迴圈內的元件數值去減迴圈外的元件數值,這個數值是以微秒(ms)為單位增加

 

倒數的部份將計算好的設定數值減去Tick Count (ms)元件相減後的數值即可,算出的數值是以微秒(ms)為單位減少

 

再來的問題是如何將倒數的微秒數值還原成時分秒顯示?這裡使用Quotient & Remainder元件取商數輸出,時的部份除以3600000(1小時等於3600000微秒),分的部份除以60000(1分鐘等於60000微秒),秒的部份除以1000(1秒等於1000微秒)

 

最後將數值轉成文字字串,將文字字串合併後輸出顯示

 

 

完成的程式

20101106-01  

 

 

程式執行畫面

20101106-02  

arrow
arrow
    文章標籤
    倒數計時
    全站熱搜

    未出師的小工程師 發表在 痞客邦 留言(2) 人氣()