专栏中心

EEPW首页 > 专栏 > C-Linux_定时器示例使用

C-Linux_定时器示例使用

发布人:电子禅石 时间:2020-11-16 来源:工程师 发布文章
#include <stdlib.h>
#include <signal.h>

static int count = 0;
static struct itimerval oldtv;
struct itimerval itv;
void set_timer()
{
        itv.it_interval.tv_sec = 0;
        itv.it_interval.tv_usec = 990000;  //启动后的定时器每隔990ms唤醒一次
        itv.it_value.tv_sec = 0;
        itv.it_value.tv_usec = 50000;   //定时器在50ms后启动
        setitimer(ITIMER_REAL, &itv, &oldtv); 
           //ITIMER_REAL表示每次定时器唤醒时将会触发SIGALRM信号
}

void shut_timer()
{
        itv.it_value.tv_sec = 0;        //将启动参数设置为0,表示定时器不启动
        itv.it_value.tv_usec = 0;
        setitimer(ITIMER_REAL, &itv, &oldtv);
}

void signal_handler(int m)
{
        count ++;
        printf("%d\n", count);
        if(count==4)     //调用4次后,关闭定时器
          shut_timer();
}

int main()
{
        signal(SIGALRM, signal_handler);  //将SIGALRM信号与signal_handler函数建立关系,当信号触发时便会调用该函数.
        set_timer();
        while(count < 10000);
        exit(0);
        return 1;
}


专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

报道称亚马逊召集工程师解决 AI 工具使用引发的问题

三极管数据表(4-4)

突破!安世中国12英寸双极平台量产

使用OPC连接LabVIEW到任意PLC

视频 2009-03-24

蓝星光域完成近5亿元C轮融资,加速激光通信产业化布局

兆易创新GD25UF系列容量全线扩展:以1.2V超低功耗存储赋能AI计算

LabVIEW 8.5新特性演示

视频 2009-03-24

使用LabVIEW 8.5的“多核”功能

视频 2009-03-24

分析师看淡无缘英伟达HBM4供应影响 美光科技股价走高

不止观赛体验:Wi-Fi 7如何重新定义现代体育场馆

日本目标 2040 年半导体本土产值达 2500 亿美元

国际视野 2026-03-11

三极管资料

适合于新材料的化学镀铜工艺

亚利桑那州州立大学柔性显示器中心开发第一个触摸屏柔性显示器

射频电路PCB设计

海力士推出超性能版LPDDR6内存:较LPDDR5X速度提升33%、能效提升20%

手动曝光机自动化改造及成像生产自动化

ARM 展示小型低功耗上网本样品

视频 2009-03-16

分析师称人工智能需求激增致笔记本电脑价格或大涨约40%

BANF携手芯科科技推智能轮胎监测解决方案 实现“最后的模拟领域”的数字化转型

更多 培训课堂
更多 焦点
更多 视频

技术专区