/*
* 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. Python matplotlib笔记

    可视化的工具有很多,如Tableau,各种JS框架,我个人感觉应该是学JS最好,因为JS不需要环境,每个电脑都有浏览器,而像matplotlib需要Python这样的开发环境,还是比较麻烦的,但是毕竟 ...

  2. Masonry tableviewCell布局(转)

    转载自:http://www.henishuo.com/masonry-tableviewcell-layout/ 前言 说到iOS自动布局,有很多的解决办法.有的人使用xib/storyboard自 ...

  3. Bzoj1076 [SCOI2008]奖励关

    Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1935  Solved: 1053 Description 你正在玩你最喜欢的电子游戏,并且刚刚进入一 ...

  4. 在不损坏C盘的情况下为C盘扩容,适用于Win

    2016年12月29日14:29:27 参考原文:http://jingyan.baidu.com/article/90808022a6c6b7fd91c80fc8.html 在不损坏磁盘的情况下给某 ...

  5. windows多线程编程实现 简单(1)

    内容:实现win32下的最基本多线程编程 使用函数: #CreateThread# 创建线程 HANDLE WINAPI CreateThread( LPSECURITY_ATTRIBUTES lpT ...

  6. ui library

    https://github.com/twbs/bootstrap https://github.com/semantic-org/semantic-ui/ https://github.com/zu ...

  7. 特性 Attribute

    特性就是一个类,必须是Attribute的子类 一般以Attribute结尾,然后在使用的时候,可以去掉这个结尾 可以在特性中声明字段.属性.方法.构造函数.委托.事件... [AttributeUs ...

  8. DX 系列之 ComboBoxEdit

    参考资料: ComboBoxEdit.Properties.Items=ComboBoxItemCollection

  9. java的锁机制

    一段synchronized的代码被一个线程执行之前,他要先拿到执行这段代码的权限,在Java里边就是拿到某个同步对象的锁(一个对象只有一把锁): 如果这个时候同步对象的锁被其他线程拿走了,他(这个线 ...

  10. vim格式化代码实际上就是 "缩进代码", 命令是等号=

    vim格式化代码实际上就是 "缩进代码", 命令是等号= 格式化就是 vim 根据 文件的类型, 自动的对代码进行 缩进 缩进的类型有多种, 都是用等号命令: = 全部格式化 : ...