<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于微控制器的倒計(jì)時(shí)算法與實(shí)現(xiàn)

          基于微控制器的倒計(jì)時(shí)算法與實(shí)現(xiàn)

          作者: 時(shí)間:2011-02-15 來源:網(wǎng)絡(luò) 收藏

            下面對(duì)圖3的代碼逐條分析。

            圖3- 1 就是按時(shí)間規(guī)則進(jìn)行時(shí)間借位。其實(shí)質(zhì)是小時(shí)單位向天數(shù)單位借1天, 增加24小時(shí); 分鐘單位向小時(shí)單位借1小時(shí), 增加60分鐘; 秒單位向分鐘單位借1分鐘, 增加60秒。

            圖3- 2是時(shí)間差相減。注意, 因?yàn)樘鞌?shù)差被借走一天, 所以要減1。

            圖3- 3 是根據(jù)計(jì)算結(jié)果進(jìn)行進(jìn)位補(bǔ)償。因?yàn)榻?jīng)過借位, 相減的結(jié)果有可能超過時(shí)間單位的上限,此時(shí)就要按時(shí)間規(guī)則進(jìn)位。

            請(qǐng)注意, 圖3代碼是以天數(shù)為最高時(shí)間單位的借位計(jì)算, 可以根據(jù)實(shí)際需要把最大的時(shí)間單位設(shè)為小時(shí)或分鐘。

            在實(shí)際的時(shí)間差相減計(jì)算中, 為了避免負(fù)值的出現(xiàn), 應(yīng)先從天數(shù)開始對(duì)兩個(gè)時(shí)間差的時(shí)間單位比較數(shù)值大小, 其結(jié)果按三種情況處理。

            ( 1)若當(dāng)前時(shí)間點(diǎn)的時(shí)間單位超過目標(biāo)時(shí)間點(diǎn)的時(shí)間單位, 表明結(jié)束。

            ( 2)若兩個(gè)時(shí)間單位相同, 當(dāng)時(shí)間單位為秒時(shí),表明結(jié)束, 否則進(jìn)入次一級(jí)時(shí)間單位的判斷。

            ( 3)若當(dāng)前時(shí)間點(diǎn)的時(shí)間單位小于目標(biāo)時(shí)間點(diǎn)的時(shí)間單位, 則視此時(shí)間單位為最高時(shí)間單位, 進(jìn)行借位相減計(jì)算。

            由此, 即可計(jì)算出兩個(gè)時(shí)間點(diǎn)的精確時(shí)間差。



          圖3 時(shí)間差借位相減參考代碼。

            4 結(jié)束語(yǔ)

            在上面的介紹中, 先討論了的兩種,再擇優(yōu)對(duì)其中一種進(jìn)行了詳細(xì)的闡述。該已在實(shí)際項(xiàng)目中獲得應(yīng)用, 其計(jì)時(shí)準(zhǔn)確, 工作穩(wěn)定。


          上一頁(yè) 1 2 3 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();