1. 程式人生 > >unix軟體定時器程式碼分享

unix軟體定時器程式碼分享

#include <signal.h>
#include <time.h>
#include <sys/time.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
void timer_callback_handler(int iSigNum)
{
    printf("22222122\n");
}
void init_soft_timer(int init_sec, int inter_sec)
{
    signal(SIGALRM, timer_callback_handler);
    struct itimerval tm;
    tm.it_value.tv_sec = init_sec;
    tm.it_value.tv_usec = 0
;   //如果想用微秒延時,請傳引數
    tm.it_interval.tv_sec = inter_sec;
    tm.it_interval.tv_usec = 0//如果想用微秒延時,請傳引數
    if(setitimer(ITIMER_REAL, &tm, NULL) == -1) {
        perror("setitimer error");
        exit(-1);
    }
}
int main()
{
    init_soft_timer(10);
    while(1) {
        sleep(3);
        printf("11111111111111111\n"
);
    }
    return 0;
}

相關推薦

unix軟體定時程式碼分享

#include <signal.h>#include <time.h>#include <sys/time.h>#include <unistd.h>#include <stdio.h>#include <stdlib.h>void t

白鷺引擎定時程式碼例項

白鷺引擎 版本:5.2.8 描述:實現定時器操作程式碼例項 全域性宣告 private timer:egret.Timer; private num; 函式中使用的程式碼片段 ptivate fun_num(){ this.ti

基於連結串列的軟體定時實現(轉)

軟體定時器在實際應用比較重要,本文旨在實現一種便於移植,易擴充套件功能,效率高的軟體定時器。本定時器是基於排序連結串列,將最近將觸發的定時器置於連結串列頭,後續新增定時器將計算出其合適位置插入。 主要資料結構及資料   typedef struct m_tm_tcb_struct { uint

FreeRTOS軟體定時

1.軟體定時器: 軟體定時器允許設定一段時間,當設定的時間到達之後就執行指定的功能函式,被定時器 呼叫的這個功能函式叫做定時器的回撥函式。回撥函式的兩次執行間隔叫做定時器的定時週期, 簡而言之,當定時器的定時週期到了以後就會執行回撥函式。 2.軟體定時器功能: 單次定時器:(

uCOS的軟體定時、uCOS時鐘節拍和滴答定時的關係

uCOS2.81後的版本中有軟體定時器的概念,如果要開啟定時器任務,需要在OS_CFG.H檔案中 #define  OS_TMR_EN                 1 軟體定時器其實跟硬體中斷

ARM cortex-M核心晶片的軟體定時功能異常問題解決

      最近一個專案中的使用了軟體定時器功能,程式執行在前後臺的系統中,使用軟體定時器建立任務處理應用。硬體上外接一個水流感測器,水流感測器輸出的是一個方波訊號,水流越快,訊號的頻率越高。CPU採用的是STM32L051的晶片,使用外部中斷接收這個方波訊號,中斷

藍芽BLE---DA14585的軟體定時使用

Dialog DA14585的軟體定時器用起來還是比較方便的,軟體定時器理論上可以開無數個。 首先定義初始化函式 void key_timer_scan(void) { key_sc

stm32滴答定時構建多組軟體定時

stm32有很多組定時器,處理一般業務已經足夠用了。 但是殺雞焉用牛刀,對時間精度要求不高的場合可以考慮使用軟體定時器,使用方便,快捷。 怎麼實現呢?其實並不難,就是使用回撥函式即可。 1. 先將使用到的引數用結構體封裝一下吧 #de

UCOSIII軟體定時-OSTmrStart()函式

建立好的軟體定時器需要呼叫OSTmrStart()函式來啟動軟體定時器 函式原型:CPU_BOOLEAN  OSTmrStart (OS_TMR  *p_tmr,                          OS_ERR  *p_err) 功能:This funct

004_軟體定時

軟體定時器API函式:紅色常用 函式名 作用 OSTmrCreate() 建立定時器並制定執行模式 OSTmrDel() 刪除定時器 OSTmrRemainGet

軟體定時osTimerCreate返回NULL

CMSIS-RTOS是對FreeRtos的封裝,函式名比較適合純軟體程式設計。 現在的版本是1.0.2. id1 = osTimerCreate(osTimer(Timer_1), osTimerOnce, NULL); 但是這個osTimerCreate總是返回0x0

UCOSIII 軟體定時

一、相關理論 1、使用定時器需開啟巨集   OS_CFG_TMR_DEL_EN     1u 2、定時器解析度由定義的系統節拍頻率 OS_CFG_TICK_RATE_HZ 決定  如 OS_CFG_TMR_TASK_RATE_HZ = 100,系統時鐘週期為  10ms

FreeRTOS 軟體定時的使用

本質 軟體定時器本質上是一個週期性的任務或單次執行任務。 第一步:巨集配置 使用軟體定時器需要在FreeRTOSConfig.h先配置, 需要注意的是優先順序和堆疊,這幾個資料要根據具體情況具體設定。 #define configUSE_TIMERS 1

51微控制器自定義多個軟體定時

/*---------------------------------------------------- 名稱:用定時器控制led亮滅 微控制器:stc12c2052 晶振:12M 說明:四個led,四種頻率亮。 ------------------------------------------

UCOSIII軟體定時

在學習微控制器的時候會使用定時器來做很多定時任務,這個定時器是微控制器自帶的,也就是硬體定時器,在UCOSIII中提供了軟體定時器 定時器的工作模式 定時器其實就是一個遞減技術器,當計數器遞減到0的時候就會觸發一個動作,這個動作就是回撥函式,當定時器完成技術時

【FreeRTOS】小白進階之任務如何共用FreeRTOS軟體定時回撥函式(二)

介紹兩個定時器任務如何通過定時器 handle 共用一個回撥函式。 1、標頭檔案宣告和函式定義 #include "FreeRTOS.h" #include "task.h" #include "t

一種嵌入式系統軟體定時的實現:以STM32為例

1.什麼是軟體定時器 軟體定時器是用程式模擬出來的定時器,可以由一個硬體定時器模擬出成千上萬個軟體定時器,這樣程式在需要使用較多定時器的時候就不會受限於硬體資源的不足,這是軟體定時器的一個優點,即數量不受限制。但由於軟體定時器是通過程式實現的,其執行和維護

用連結串列+函式指標+定時中斷實現的一個軟體定時(試用於所有微控制器)

因為需要移植nrf51822的程式到普通微控制器上,於是分析了協議棧裡的軟體定時器,用連結串列+函式指標+定時器中斷的方法實現了軟體定時器的功能。 下面介紹程式碼和使用方法 1、函式指標和連結串列初始化 typedef void (*app_timer_timeout_

matlab定時程式碼解析

這是顯示時間的一段定時器程式碼,註釋是我自己寫的,不知道對不對,希望各位大牛幫忙看看 t = timer('TimerFcn', {@timerCallback, handles.edit1}, 'ExecutionMode', 'fixedDelay', 'Period', 1.0); % 建立 ti

使用FREERTOS軟體定時

    剛剛學會用FREERTOS,剛好稱公司專案需要,就學習著用,有幾個定時需求,本來想使用硬體中斷定時器,再用軟體做個分組定時,剛好看到FREERTOS有軟體定時器組,就想用用試試看效果;    使用的是FREERTOSV10.0.1,MCU用的是STM32F205RET