偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

OpenHarmony內(nèi)核編程接口—介紹定時(shí)器管理兩種定時(shí)器以及案例演示

系統(tǒng) OpenHarmony
軟件定時(shí)器(Timer),是基于系統(tǒng)時(shí)鐘tick且由軟件來模擬的定時(shí)器,當(dāng)經(jīng)過設(shè)定的tick計(jì)數(shù)值后會(huì)觸發(fā)用戶定義的回調(diào)函數(shù)。

想了解更多關(guān)于開源的內(nèi)容,請(qǐng)?jiān)L問:

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

https://ost.51cto.com

前言

本文介紹了內(nèi)核編程接口之軟定時(shí)器

軟定時(shí)器

軟定時(shí)器含義

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

一次性定時(shí)器

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

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

周期性定時(shí)器

周期性定時(shí)器指重復(fù)其操作,直到它被刪除或停止。

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

API接口介紹

osTimerNew

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

func :定時(shí)器回調(diào)函數(shù)。
type :定時(shí)器類型。osTimerOnce 一次性定時(shí)器, osTimerPeriodic 周期性定時(shí)器。
argument :定時(shí)器回調(diào)函數(shù)的參數(shù)。
attr :定時(shí)器屬性。

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

osTimerGetName

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

osTimerStart

  • 功能:?jiǎn)?dòng)或者重啟指定ID的定時(shí)器
  • 定義:osStatus_t osTimerStart(osTimerId_t timer_id, uint32_t ticks)
  • 參數(shù):imer_id :定時(shí)器ID,由 osTimerNew 生成
    ticks :定時(shí)器的間隔
  • 返回值:osOK :操作成功
    osErrorISR :不能從中斷服務(wù)程序中調(diào)用
    osErrorParameter :參數(shù)錯(cuò)誤
    osErrorResource :定時(shí)器狀態(tài)無效

osTimerStop

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

osTimerIsRunning

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

osTimerDelete

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

案例演示

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

準(zhǔn)備開發(fā)套件。

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

根據(jù)路徑,新建文件。

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

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

編寫源文件。

必要的頭文件。

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

定義全局變量和定時(shí)器回調(diào)函數(shù)。

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

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

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

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

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

定義入口函數(shù),運(yùn)行入口函數(shù)。

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

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

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

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

編譯成功。

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

燒錄成功。

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

運(yùn)行成功。

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

目標(biāo)2:創(chuàng)建一個(gè)定時(shí)器,每 2 秒調(diào)用一次回調(diào)函數(shù),主線程 1 秒后就停止定時(shí)器

根據(jù)路徑,新建文件。

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

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

編寫源文件,定義定時(shí)器回調(diào)函數(shù)。

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

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

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

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

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

定義運(yùn)行入口函數(shù)。

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

修改編譯腳本。

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

編譯成功。

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

燒錄成功。

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

運(yùn)行成功。

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

想了解更多關(guān)于開源的內(nèi)容,請(qǐng)?jiān)L問:

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

https://ost.51cto.com

責(zé)任編輯:jianghua 來源: 51CTO 開源基礎(chǔ)軟件社區(qū)
相關(guān)推薦

2009-06-15 15:02:48

Spring定時(shí)器

2013-07-29 10:10:40

TCP協(xié)議TCP定時(shí)器TCP

2014-12-09 16:30:18

TCP定時(shí)器

2010-07-28 15:56:22

FlexTimer定時(shí)

2009-11-11 10:14:10

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

2009-04-12 08:51:50

Symbian諾基亞移動(dòng)OS

2011-02-23 10:20:45

2021-03-31 08:33:17

SysTick定時(shí)器SysTick定時(shí)器

2018-12-03 12:20:52

Systemd定時(shí)器Linux

2023-01-10 13:53:21

Linux定時(shí)器

2022-11-02 11:40:16

Flowable定時(shí)器流程

2015-10-15 09:38:48

TCP網(wǎng)絡(luò)協(xié)議定時(shí)器

2023-02-28 18:09:53

Javascript定時(shí)器

2021-06-28 06:00:11

systemd定時(shí)器系統(tǒng)運(yùn)維

2025-09-08 04:00:00

2009-06-18 11:07:17

Spring fram

2017-03-06 14:08:38

JavaScript單線程setTimeout

2021-04-18 12:12:29

systemd定時(shí)器系統(tǒng)運(yùn)維

2017-02-28 17:18:34

Linux驅(qū)動(dòng)技術(shù)內(nèi)核定時(shí)器

2023-12-11 09:50:35

Linux定時(shí)器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)