時間管理以系統時鐘為基礎。時間管理提供給應用程式所有和時間有關的服務。
系統時鐘是由定時/計數器產生的輸出脈衝觸發中斷而產生的,一般定義為整數或長整數。輸出脈衝的週期叫做乙個「時鐘滴答」。系統時鐘也稱為時標或者tick。乙個tick的時長可以靜態配置。
使用者是以秒、毫秒為單位計時,而晶元cpu的計時是以tick為單位的,當使用者需要對系統操作時,例如任務掛起、延時等,輸入秒為單位的數值,此時需要時間管理模組對二者進行轉換。
tick與秒之間的對應關係可以配置。
huawei liteos的時間管理模組提供時間轉換、統計、延遲功能以滿足使用者對時間相關需求的實現。
系統最小的計時單位。 cycle的時長由系統主頻決定,系統主頻就是每秒鐘的cycle數。
使用者需要了解當前系統執行的時間以及tick與秒、毫秒之間的轉換關係等。
huawei liteos系統中的時間管理主要提供以下兩種功能:
時間轉換存在出錯的可能性,需要返回對應的錯誤碼,以便快速定位錯誤原因。
時間管理的典型開發流程:
確認配置項loscfg_base_core_tick_hw_time為yes開啟狀態。
呼叫時鐘轉換介面。
獲取系統tick數完成時間統計。
在下面的例子中,介紹了時間管理的基本方法,包括:
時間轉換:將毫秒數轉換為tick數,或將tick數轉換為毫秒數。
時間統計和時間延遲:統計每秒的cycle數、 tick數和延遲後的tick數。
前提條件:
時間轉換:
void example_transformtime(void){ uint32 uwms; uint32 uwtick; uwtick = los_ms2tick(10000);//10000 ms數轉換為tick數 printf("uwtick = %d
獲取各種時間的時間毫秒數
獲取這個月的第一天的時間戳 public static long nowdatenum throws parseexception 獲取前一天的 0 0 0 的時間戳 public static long lastdaydate throws parseexception 獲取前一天的 23 59 ...
mysql 獲取系統時間(毫秒數)
sql語句 select time to sec now now current timestamp replace unix timestamp current timestamp 3 執行結果 優化版 最後乙個,就是你想要的系統毫秒數了 獲取已知日期的時間毫秒數 select unix time...
js毫秒數轉換成時間格式
date.prototype.format function fmt if y test fmt fmt fmt.replace regexp.1,this.getfullyear substr 4 regexp.1.length console.log new date 毫秒數 format yy...