c语言定时器回调函数的参数,定时器的简单实现即回调函数的运用

news/2025/1/16 4:58:39/



这两天在 研究回调函数就想实现简单的定时器,如下是鄙人的程序望指教。ios

#include

#include

using namespace std;app

#define MAXNUM 256函数

typedef void (*timerProcessFunc)(void*);spa

typedef struct

{

unsigned int id;

int timeout;  //毫秒

}MyTimer;回调函数

static MyTimer timerList[MAXNUM] = {0};it

int initTimer(MyTimer* timer, int timeout)

{

if(!timer || timeout < 0) return false;

timer->timeout = timeout;

for(int i = 0; i < MAXNUM; i++)

{

if(timerList[i].id == 0)

{

timer->id = i;

timerList[i] = *timer;

return i;

}

}

return -1;

}io

void timerProcess(void* userPara)  //回调函数

{

cout << "定时了" << *(double*)userPara << "毫秒" << endl;

}stream

void startTimer(int timerID, timerProcessFunc timerapp)

{

clock_t start,finish;

double totaltime;

start = clock();List

/**********计时开始*****************/

while(1)

{

finish = clock();

totaltime = (double)(finish-start);

if(totaltime >= timerList[timerID].timeout)

{

timerapp(&totaltime);

break;

}

}

/********************************/

} 定时器

void killTimer(int timerID)

{

timerList[timerID].id = 0;

timerList[timerID].timeout = 0;

}

int main()

{

MyTimer t;

int id;

if((id = initTimer(&t, 10000)) != -1)

startTimer(id, timerProcess);

return 0;

}


http://www.ppmy.cn/news/820062.html

相关文章

hal定时器回调函数

hal定时器回调函数 () TIM Period elapsed callback() TIM Output Compare callback() TIM Input capture callback() TIM Trigger callback() TIM Error callback () TIM Period elapsed callback __weak void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)brief …

定时器的用法以及pwm的调速

今天我们来讲一下定时器的用法以及PWM的调速 我们最初接触的51单片机有两组定时器&#xff08;计数器&#xff09;&#xff0c;因为既可以定时&#xff0c;又可以计数&#xff0c;因此叫做定时器&#xff08;计数器&#xff09;. 定时器和单片机的CPU是相互独立的。 定时器的工…

proteus 555定时器占空比可调的多谐振荡电路

话不多说&#xff0c;上图&#xff0c;这个是多少赫兹的看了下面计算过程自己算一下吧。 计算过程如下&#xff0c;是从我以前作业上截图截的&#xff0c; 占空比可调&#xff1a; 误差肯定会有&#xff0c;微调一下电阻值就行&#xff0c;&#xff0c;&#xff0c;

java 定时回调_回调函数之定时器

定时器基础 setTimeout 第一个参数是一个函数&#xff0c;对于第二个参数&#xff0c;因为js是单线程的&#xff0c;所以一段时间内只能执行一段代码&#xff0c;所以就有了任务队列&#xff0c;这些任务会按照它们添加的顺序执行&#xff0c;而第二个参数指的就是多长时间后把…

定时器回调函数

定时器回调函数&#xff1a; 如图1所示。 图1为定时器0初始化&#xff0c;溢出时间为1ms。初始化时会传入一个timer0_handler()函数&#xff0c;这个函数在定时器初始化代码中被赋值给了m_tim0_hdl 。定时器溢出后进入中断会判断m_tim0_hdl是否为空&#xff0c; 当调用rad_set_…

51定时器PWM调节

pwm 原理部分 PWM-脉冲宽度调制是一种模拟控制方式&#xff0c;根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置&#xff0c;来实现晶体管或MOS管导通时间的改变&#xff0c;从而实现开关稳压电源输出的改变。这种方式能使电源的输出电压在工作条件变化时保持恒定&…

总结定时器设计方法_PLC定时器(T)的工作原理及使用注意事项

PLC中的定时器相当于继电器系统中的时间继电器。它有一个设定值寄存器(一个字长)、一个当前值寄存器(一个字长)和一个用来储存其输出触点状态的映像寄存器(占二进制的一位),这三个存储单元使用同一个元件号。FX系列PLC的定时器分为通用定时器和积算定时器。 常数K可以作为定时…

精密空调小技巧,真正会用的人很少,电子工厂必看!

在精密电子仪器仪表生产车间中&#xff0c;空调系统的监控和调节起着至关重要的作用。由于精密仪器对环境条件的敏感性&#xff0c;如温度、湿度等因素&#xff0c;精密空调监控系统的使用变得不可或缺。 因此&#xff0c;精密空调监控系统的存在可以实时监测车间内的环境条件&…