/*
* jf_timer.h
*
* Created on: Aug 20, 2016
* Author: lort
*/ #ifndef JF_OS_JF_TIMER_H_
#define JF_OS_JF_TIMER_H_ #include "jf_types.h" typedef void (*time_fuc_t) (void *param); typedef struct
{
void *next;
uint32 decounter;
uint32 reroad;
time_fuc_t fuc;
void *param;
}jf_timer_t; #endif /* JF_OS_JF_TIMER_H_ */
#include "jf_types.h"
#include "jf_timer.h"
#include "jf_mem.h" jf_timer_t *pjf_time = NULL;
void jf_timer_poll(uint32 ticks)
{
jf_timer_t *pcur;
if(pjf_time!=NULL)
{
pcur = pjf_time;
while(pcur!=NULL)
{
if(pcur->param!=NULL)
{
if(pcur->decounter>=ticks)
pcur->decounter-=ticks;
else
{
pcur->decounter = ;
pcur->fuc(pcur->param);
if(pcur->reroad)
{
pcur->decounter = pcur->reroad;
}
else
{
jf_free(pcur->param);
pcur->param = NULL;
}
}
}
pcur = pcur->next;
}
}
}
int jf_timer_add(uint32 tim,uint32 reload, void *fuc,void *param)
{
jf_timer_t *pcur;
jf_timer_t *pnew;
pnew = jf_malloc(sizeof(jf_timer_t));
if(pnew!=NULL)
{
pnew->decounter = tim;
pnew->reroad = reload;
pnew->fuc = fuc;
pnew->param = param;
pnew->next = NULL;
}
else
return -;
if(pjf_time==NULL)
{
pjf_time = pnew;
return ;
}
else
{
pcur = pjf_time;
while(pcur->next!=NULL)
{
pcur = pcur->next;
}
pcur->next = pnew;
return ;
}
}

j嵌入式f_os之定时管理的更多相关文章

  1. 定时管理器框架-Task.MainForm

    入住博客园4年多了,一直都是看别人的博客,学习别人的知识,为各个默默无私贡献自己技术总结的朋友们顶一个:这几天突然觉得是时候加入该队列中,贡献出自己微弱的力量,努力做到每个月有不同学习总结,知识学习的 ...

  2. Quartz+SpringMVC实现web定时管理任务

    代码地址如下:http://www.demodashi.com/demo/13978.html 使用背景 相信大家在工作过程中,肯定会遇到很多任务定时执行,修改定时任务的时间,执行一次定时任务等等.下 ...

  3. 【swupdate文档 一】嵌入式系统的软件管理

    嵌入式系统的软件管理 嵌入式系统变得越来越复杂, 它们的软件也反映了这种复杂性的增加. 为了支持新的特性和修复,很有必要让嵌入式系统上的软件 能够以绝对可靠的方式更新. 在基于linux的系统上,我们 ...

  4. 嵌入式无操作系统下管理内存和队列(类UCOS II思想)

    例子:存储日志,最多存128条,每条最大1MB. 内存方面 因为嵌入式不适合用动态内存,会产生碎片.这里我们用 u8 data[LOG_SIZE];开辟固定128MB的内存区,再对其分为128个1MB ...

  5. 基于SOC方案的嵌入式开发-远程定时设备

    Soc方案实现简单的定时开关灯 http://club.gizwits.com/forum.php?mod=viewthread&tid=7787&highlight=%E5%AE%9 ...

  6. saltstack之定时管理

    1.设置定时任务 /srv/salt/cron/ntpdate.sls /usr/sbin/ntpdate 10.31.10.3; /sbin/hwclock -w: cron.present: - ...

  7. Unity游戏开发中的内存管理_资料

    内存是手游的硬伤——Unity游戏Mono内存管理及泄漏http://wetest.qq.com/lab/view/135.html 深入浅出再谈Unity内存泄漏http://wetest.qq.c ...

  8. C++服务器设计(四):超时管理机制设计

    前四章介绍了系统层的设计,从这一章开始进入服务层的设计. 连接断开 在常见的服务器场景中,客户端断开连接的方式为被动关闭.即作为客户端请求完服务器的服务后,选择主动关闭同服务器的连接.在服务器的角度看 ...

  9. JAVA简单的网格布局管理器--JAVA基础

    网格布局管理器: GridLayoutDemo.java: import java.awt.GridLayout;import javax.swing.JButton;import javax.swi ...

随机推荐

  1. Nginx相关集合

    http://www.cnblogs.com/kamil/p/5163182.html LNMP搭建(yum) Nginx基本使用 http://www.cnblogs.com/kamil/p/516 ...

  2. C#面向对象设计模式纵横谈——6.Prototype 原型模式(创建型模式)

    动机(Motivation) 在软件系统中,经常面临着“某些结构复杂的对象”的创建工作.由于需求的变化,这些对象经常面临着剧烈的变化,但他们却拥有比较稳定一致的接口. 如何应对这种变化?如何向“客户程 ...

  3. UVa11427 Expect the Expected

    数学期望 概率递推 每一天的概率都是独立且相同的.可以先推出每天打i盘赢j盘的概率f[i][j] f[i][j]=f[i-1][j]*(1-p) + f[i-1][j-1]*p 输 赢 设此人打一天胜 ...

  4. Mac OSX:Powerline风格的zsh配置

    需要的工具 iTerm,一个替代OSX自带终端的软件,基于iTerm才能实现上面的效果: oh-my-zsh,zsh是OSX上最强大的shell,没有之一,但是配置过程较为复杂,这个脚本能够帮你一键配 ...

  5. SolrQuery的使用

    查询的总结:一般查询分为以下几个步骤: 1.创建查询对象 2.创建查询条件 3.执行查询,这里注意要有返回值 4.对查询结果进行取出 public void queryDocument() throw ...

  6. web前端基础知识-(六)web框架

    一.web框架本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. #!/usr/bin/env python #coding:ut ...

  7. Html中<font>标签的使用

    Html中<font>标签的使用 <!doctype html> <html lang="en"> <head> <meta ...

  8. mybatis:choose when otherwise标签

    choose标签是按顺序判断其内部when标签中的test条件是否成立,如果有一个成立,则 choose 结束. 当 choose 中所有 when 的条件都不满则时,则执行 otherwise 中的 ...

  9. 常见ES5方法

    • ES5 JSON扩展JSON.parseJSON.stringify • ES5 Object扩展Object.createObject.keys • Date对象Date.now • ES5 F ...

  10. asp.net MVC4 异步文件上传

    1.下载ajaxfileupload.js 2.在控制器内创建如下方法 //文件上传 public ActionResult uploadFile(HttpPostedFileBase file) { ...