www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 工業(yè)控制 > 工業(yè)控制
[導(dǎo)讀] 1 引 言  這里的倒計時就是計算出從當(dāng)前時間點需要經(jīng)過多長時間才能到達目標(biāo)時間點。從另一個角度講, 就是計算出兩個時間點之間的時間差。  目前, 倒計時系統(tǒng)正得到越來越廣泛的應(yīng)用?! ≡隗w育比賽、公交

  1  引  言

  這里的倒計時就是計算出從當(dāng)前時間點需要經(jīng)過多長時間才能到達目標(biāo)時間點。從另一個角度講, 就是計算出兩個時間點之間的時間差。

  目前, 倒計時系統(tǒng)正得到越來越廣泛的應(yīng)用。

  在體育比賽、公交系統(tǒng)乃至鐵路系統(tǒng)中出現(xiàn)了很多倒計時的時間顯示。就在前不久, 關(guān)于上海世博會的倒計時正式啟動, 其精度精確到天。

  在類似的應(yīng)用中, 大多數(shù)情況下, 倒計時功能(包括顯示功能)是由微控制器實現(xiàn)的。微控制器不同于桌面電腦或筆記本電腦, 其系統(tǒng)資源非常有限, 也不能安裝復(fù)雜的操作系統(tǒng), 沒有現(xiàn)成的倒計時系統(tǒng)可以應(yīng)用。下面將討論適合在微控制器中運行的倒計時算法。

  2  倒計時算法的兩種常用思路

  關(guān)于倒計時的計算主要有兩種思路: 一是針對時間段倒計時, 二是針對目標(biāo)時間倒計時。

  ●針對時間段倒計時

  時間段的含義就是兩個時間點的時間差。對時間段倒計時就是先獲取兩個時間點之間的時間差,然后隨著運行時間的增加對該時間差按運行時間遞減, 直至遞減為0, 表示倒計時結(jié)束。

  例如, 微處理器對100天倒計時或者對100秒倒計時, 都屬于對時間段倒計時, 時間段分別是100天和100秒。當(dāng)然, 在實際計算時, 最好先把天換算為秒, 再按運行時間遞減。

  ●針對目標(biāo)時間倒計時

  該種思路與第一種思路最大的不同就是它獲取的不是時間差, 而是目標(biāo)時間, 微控制器須自行計算出當(dāng)前時間與目標(biāo)時間的時間差。在這種情況下,隨著當(dāng)前時間的改變, 微控制器必須反復(fù)計算與目標(biāo)時間的時間差, 直至差值為0。

  例如, 當(dāng)前時間是2009年5月10 日11點27分0秒, 微控制器獲取到目標(biāo)時間是2009年5月12日11點27分0秒, 則計算出當(dāng)前的時間差為2天。

  然后, 當(dāng)前時間一旦改變, 微控制器就必須重新計算時間差, 直到當(dāng)前時間到達或超過2009年5月12日11點27分0秒。

  ●兩種思路的比較

  ( 1)獲取的時間參數(shù)不同

  如前所述, 第一種思路獲取的是時間差, 第二種思路獲取的是目標(biāo)時間點。

  ( 2)采取的算法不同

  第一種思路的主要算法是按運行時間對獲取的時間差進行遞減運算, 這實際是時間計時的逆運算。

  該算法牽涉到減法運算與天、小時、分鐘、秒的時間規(guī)則運算。

  第二種思路的主要算法就是計算出兩個時間點之間的時間差。該算法不僅牽涉到時間規(guī)則運算,還牽涉到閏年的概念與多種算術(shù)運算, 比第一種思路的算法復(fù)雜許多。此外, 由于該算法需要微控制器能夠隨時獲取當(dāng)前的準(zhǔn)確時間, 因此要求微處理器必須具備實時時鐘功能。

  ( 3)應(yīng)用范圍與靈活性不同

  第一種思路的實現(xiàn)依靠對運行時間的準(zhǔn)確把握。如果微控制器斷電或由于其它原因產(chǎn)生復(fù)位導(dǎo)致運行中斷, 則從此刻起到下一次穩(wěn)定運行時所經(jīng)過的時間無法掌控, 進而導(dǎo)致倒計時運算無法繼續(xù)運行。因此, 該思路只適用于極短時間段的倒計時計算, 其可靠性與靈活性欠佳。

  第二種思路的實現(xiàn)需要兩點: 一是斷電保護的實時時鐘功能, 這是為了微控制器能夠隨時讀取準(zhǔn)確時間; 二是非易失數(shù)據(jù)的存儲功能, 這是為了微控制器可以長時間保存目標(biāo)時間。滿足了這兩點要求, 微控制器就能夠可靠地實現(xiàn)倒計時計算, 即使突然斷電或復(fù)位也不會受到影響。對于第一點要求,不管使用外置時鐘還是內(nèi)置時鐘, 只要配置電池就可以實現(xiàn)。對于第二點要求, 當(dāng)前的主流微控制器大都配置FLASH存儲功能, 也可以輕松滿足。

  可見, 針對目標(biāo)時間的倒計時算法在可靠性與靈活性上極具優(yōu)勢, 對微控制器的要求也不苛刻。

  下面就闡述該算法的實現(xiàn)環(huán)節(jié)。

  3  針對目標(biāo)時間點的倒計時算法實現(xiàn)

  如前所述, 該算法主要是計算當(dāng)前時間點與目標(biāo)時間點的時間差。具體思路就是先選擇一個參考時間點, 然后分別計算出這兩個時間點與參考時間點之間的時間差, 再把這兩個時間差相減就得到這兩個時間點之間的時間差。

  下面分三部分描述該算法: 時間格式的建立; 計算時間點到參考時間點的時間差; 時間差相減算法。

  ( 1)時間格式的建立

  有兩種時間格式, 一是時間點的格式; 一是時間差的格式。時間點的格式按年月日時分秒排列, 其中年份為16位無符號整數(shù), 其余為8 位無符號整數(shù)。時間差格式按天時分秒排列, 天數(shù)為16位無符號整數(shù), 其余為8位無符號整數(shù)。

  ( 2)到參考時間點的時間差算法

  該算法有兩個重點, 一是參考時間點的選取, 二是根據(jù)閏年規(guī)則對時間差中的天數(shù)進行補償。

  關(guān)于參考時間點的選取, 應(yīng)符合兩個原則: 一是方便閏年的計算, 二是方便時間差的計算。在這里,選取2001年1月1日0時0分0秒為參考時間點。

  圖1是時間點到該參考時間點算法的示例代碼,pT mi e是指向時間點的數(shù)據(jù)結(jié)構(gòu)指針, pResult是指向時間差的數(shù)據(jù)結(jié)構(gòu)指針。下面對該段代碼逐條說明。




 

 


圖1  天數(shù)時間差參考代碼

  圖1- 1定義了一個數(shù)組, 它的12個元素對應(yīng)1月份到12月份所累積的天數(shù)。請注意兩點, 一是該天數(shù)不包括本月份的天數(shù), 二是二月份的天數(shù)按28天計。

  圖1- 2是計算時間點與參考時間點的年份、月份與日期的差值。

  圖1- 3 是初步計算天數(shù)差。在這里應(yīng)用到了圖1- 1定義的數(shù)組與圖1- 2的計算結(jié)果。首先,按照每年365天來計算天數(shù), 再按照閏年個數(shù)補償天數(shù), 最后按月份日期的差值計算本年度過的天數(shù)。

  代碼中的( Y earId /4) 就是初步的閏年補償計算, 補償規(guī)則就是把年份差被4整除的值視為經(jīng)過的閏年個數(shù), 也就是要補償?shù)奶鞌?shù)。

  圖1- 4是根據(jù)世紀年(也就是能被100整除的年份)的閏年判斷規(guī)則對圖1- 3的計算結(jié)果進行校正。這是因為圖1- 3 進行的閏年補償計算所依據(jù)的是非世紀年的閏年判斷規(guī)則, 這一規(guī)則在判斷世紀年是否為閏年時可能會產(chǎn)生誤差。在這里, 對該步驟算法采用了條件編譯, 這是考慮到該計算牽涉到真正的多字節(jié)除法, 比較耗時, 設(shè)計者可以根據(jù)實際需要決定是否運行該計算。

  圖1- 5是判斷時間點的年份是否閏年, 進而進行最后的天數(shù)調(diào)整。請注意, 在圖1- 3與圖1- 4的計算中, 只計算了度過的年份中包含了多少個閏年, 這其中不包含時間點本身的年份。在本計算中,先調(diào)用函數(shù)判斷時間點年份是否閏年, 再根據(jù)時間點的月份是否超過2月決定是否對天數(shù)進行補償。

  圖1 - 6是記錄時間差結(jié)果。因為參考時間點的時分秒選擇的是0時0分0秒, 所以時間差的時分秒也就是時間點的時分秒。

  圖2是閏年判斷函數(shù)的參考代碼。該函數(shù)提供了兩種判斷計算, 一種是關(guān)于閏年規(guī)則的完整判斷,即當(dāng)年份不能被100整除時, 能被4整除的是閏年;當(dāng)年份能被100整除時, 必須能被400 整除才是閏年。另一種是簡易判斷, 即把能被4整除的年份視為閏年(當(dāng)然, 該判斷只在年份不能被100整除時才正確)。這兩種計算的復(fù)雜程度與應(yīng)用條件不同, 設(shè)計者應(yīng)根據(jù)實際需要自行選擇。


 


圖2  閏年檢測函數(shù)參考代碼

  請注意, 如果參考時間點選擇的不是2001年1月1日0時0分0秒, 則上述算法需要進行適當(dāng)調(diào)整。

  ( 3)時間差相減算法時間差相減算法的主要處理方法是按時間規(guī)則進行借位相減。

  圖3 是完整的時間差借位相減的參考代碼, 其前提是時間差中的天數(shù)差不為0。代碼中pT im e0是指向目標(biāo)時間點與參考時間點的時間差數(shù)據(jù)結(jié)構(gòu)的指針, pT ime1是指向當(dāng)前時間點與參考時間點的時間差數(shù)據(jù)結(jié)構(gòu)的指針。

  下面對圖3的代碼逐條分析。

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

  圖3- 2是時間差相減。注意, 因為天數(shù)差被借走一天, 所以要減1。

  圖3- 3 是根據(jù)計算結(jié)果進行進位補償。因為經(jīng)過借位, 相減的結(jié)果有可能超過時間單位的上限,此時就要按時間規(guī)則進位。

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

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

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

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

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

  由此, 即可計算出兩個時間點的精確時間差。


 


圖3  時間差借位相減參考代碼。

  4  結(jié)束語

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

 

 

 

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉