自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

OpenHarmony內核編程接口—介紹定時器管理兩種定時器以及案例演示

系統(tǒng) OpenHarmony
軟件定時器(Timer),是基于系統(tǒng)時鐘tick且由軟件來模擬的定時器,當經過設定的tick計數值后會觸發(fā)用戶定義的回調函數。

想了解更多關于開源的內容,請訪問:

51CTO 開源基礎軟件社區(qū)

https://ost.51cto.com

前言

本文介紹了內核編程接口之軟定時器

軟定時器

軟定時器含義

軟件定時器(Timer),是基于系統(tǒng)時鐘tick且由軟件來模擬的定時器,當經過設定的tick計數值后會觸發(fā)用戶定義的回調函數。
ps1:定時器觸發(fā)函數的執(zhí)行,不是線程。
ps2:當定時器到期時,將執(zhí)行回調函數以運行特定的代碼。
ps3:定時精度與時鐘周期有關。
ps4:所有定時器都可以啟動、重新啟動或停止。
ps5:每個定時器都可以配置為一次性或周期性定時器。

一次性定時器

一次性定時器指僅執(zhí)行一次操作即停止,不會自動重新啟動。

【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)

周期性定時器

周期性定時器指重復其操作,直到它被刪除或停止。

【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)

API接口介紹

osTimerNew

  • 功能:創(chuàng)建并初始化一個定時器。
  • 定義:osTimerId_t osTimerNew (osTimerFunc_t func, osTimerType_t type, void *argument, const osTimerAttr_t *attr)。
  • 參數:

func :定時器回調函數。
type :定時器類型。osTimerOnce 一次性定時器, osTimerPeriodic 周期性定時器。
argument :定時器回調函數的參數。
attr :定時器屬性。

  • 返回值:成功返回定時器id,失敗返回 NULL。

osTimerGetName

  • 功能:獲取指定ID的定時器的名稱
  • 定義:const char *osTimerGetName(osTimerId_t timer_id)
  • 參數:timer_id :定時器 ID ,由 osTimerNew 生成
  • 返回值:成功返回定時器的名稱,失敗返回 NULL

osTimerStart

  • 功能:啟動或者重啟指定ID的定時器
  • 定義:osStatus_t osTimerStart(osTimerId_t timer_id, uint32_t ticks)
  • 參數:imer_id :定時器ID,由 osTimerNew 生成
    ticks :定時器的間隔
  • 返回值:osOK :操作成功
    osErrorISR :不能從中斷服務程序中調用
    osErrorParameter :參數錯誤
    osErrorResource :定時器狀態(tài)無效

osTimerStop

  • 功能:停止指定ID的定時器
  • 定義:osStatus_t osTimerStop (osTimerId_t timer_id)
  • 參數:timer_id :定時器ID ,由 osTimerNew 生成
  • 返回值:osOK :操作成功
    osErrorISR :不能從中斷服務程序中調用
    osErrorParameter :參數錯誤
    osErrorResource :定時器不在運行狀態(tài)(只能停止運行態(tài)的定時器)

osTimerIsRunning

  • 功能:檢查指定ID的定時器是否在運行
  • 定義:uint32_t osTimerIsRunning (osTimerId_t timer_id)
  • 參數:timer_id :定時器ID,由 osTimerNew 生成
  • 返回值:1 :運行 0 :沒有運行或發(fā)生錯誤

osTimerDelete

  • 功能:刪除指定ID的定時器
  • 定義:osStatus_t osTimerDelete (osTimerId_t timer_id)
  • 參數:timer_id :定時器ID,由 osTimerNew 生成
  • 返回值:osOK :操作成功
    osErrorISR :不能從中斷服務程序中調用
    osErrorParameter :參數錯誤
    osErrorResource :定時器狀態(tài)無效

案例演示

目標1:創(chuàng)建一個定時器,每 1 秒調用一次回調函數,回調函數給全局變量 times+1,主線程等待 3 秒,停止并刪除定時器。

準備開發(fā)套件。

【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)

根據路徑,新建文件。

applications\sample\wifi-iot\app\timer_demo\timer.c。

applications\sample\wifi-iot\app\timer_demo\BUILD.gn。

編寫源文件。

必要的頭文件。

【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)

定義全局變量和定時器回調函數。

【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)

創(chuàng)建主線程函數。

【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)

【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)

【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)

定義入口函數,運行入口函數。

【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)

編寫編譯腳本,注意路徑。

【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)

【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)

編譯成功。

【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)

燒錄成功。

【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)

運行成功。

【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)

目標2:創(chuàng)建一個定時器,每 2 秒調用一次回調函數,主線程 1 秒后就停止定時器

根據路徑,新建文件。

applications\sample\wifi-iot\app\timer_demo\timer_once.c。

applications\sample\wifi-iot\app\timer_demo\BUILD.gn。

編寫源文件,定義定時器回調函數。

【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)

創(chuàng)建主線程函數。

【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)

【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)

【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)

定義運行入口函數。

【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)

修改編譯腳本。

【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)

編譯成功。

【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)

燒錄成功。

【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)

運行成功。

【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)【OpenHarmony內核編程接口】介紹定時器管理兩種定時器以及案例演示-開源基礎軟件社區(qū)

想了解更多關于開源的內容,請訪問:

51CTO 開源基礎軟件社區(qū)

https://ost.51cto.com

責任編輯:jianghua 來源: 51CTO 開源基礎軟件社區(qū)
相關推薦

2009-06-15 15:02:48

Spring定時器

2013-07-29 10:10:40

TCP協議TCP定時器TCP

2014-12-09 16:30:18

TCP定時器

2010-07-28 15:56:22

FlexTimer定時

2009-11-11 10:14:10

linux定時器操作系統(tǒng)

2011-02-23 10:20:45

2009-04-12 08:51:50

Symbian諾基亞移動OS

2021-03-31 08:33:17

SysTick定時器SysTick定時器

2018-12-03 12:20:52

Systemd定時器Linux

2023-01-10 13:53:21

Linux定時器

2022-11-02 11:40:16

Flowable定時器流程

2015-10-15 09:38:48

TCP網絡協議定時器

2023-02-28 18:09:53

Javascript定時器

2021-06-28 06:00:11

systemd定時器系統(tǒng)運維

2017-02-28 17:18:34

Linux驅動技術內核定時器

2009-06-18 11:07:17

Spring fram

2021-04-18 12:12:29

systemd定時器系統(tǒng)運維

2017-03-06 14:08:38

JavaScript單線程setTimeout

2023-12-11 09:50:35

Linux定時器

2016-09-12 14:07:14

Android 定時器
點贊
收藏

51CTO技術棧公眾號