rt_object_init((rt_object_t)timer, RT_Object_Class_Timer, name);//初始化对象变量,并将其节点list插入对应容器中; _rt_timer_init(timer, timeout, parameter, time, flag);//初始化剩下部分的定时器参数 } staticvoid_rt_timer_init(rt_timer_tt
RT_Object_Class_MemPool, /* 对象是内存池*/ RT_Object_Class_Device, /* 对象是设备 */ RT_Object_Class_Timer, /* 对象是定时器 */ RT_Object_Class_Module, /* 对象是模块 */ RT_Object_Class_Unknown, /* 对象未知 */ RT_Object_Class_Static = 0x80 /* 对象是静态对象 */ }; 对象基础数...
1.设置flag,去掉RT_TIMER_FLAG_ACTIVATED的标志,rt_timer使用了基类object中的flag成员作为自己的标志位。主要有以下几种标志: #define RT_TIMER_FLAG_DEACTIVATED 0x0 /**< timer is deactive */ #define RT_TIMER_FLAG_ACTIVATED 0x1 /**< timer is active */ #define RT_TIMER_FLAG_ONE_SHOT 0x0 /*...
rt_object_init((rt_object_t)timer,RT_Object_Class_Timer,name);voidrt_object_init(struct rt_object*object,enum rt_object_class_type type,const char*name){register rt_base_t temp;struct rt_list_node*node=RT_NULL;struct rt_object_information*information;/* get object information */information...
RT_Object_Class_MemHeap, // 内存堆 #endif #ifdef RT_USING_MEMPOOL RT_Object_Class_MemPool, // 内存池 #endif #ifdef RT_USING_DEVICE RT_Object_Class_Device, // 设备驱动 #endif RT_Object_Class_Timer, // 时钟 #ifdef RT_USING_MODULE ...
RT_Object_Class_Timer, // 时钟 #ifdef RT_USING_MODULE RT_Object_Class_Module, // 模块 #endif RT_Object_Class_Unknown, // 未知内核对象类型 RT_Object_Class_Static = 0x80 // rt-thread以此位标志是否为系统内核对象 }; 所有对象又被放置于对象容器中: ...
RT_Object_Class_MessageQueue, /* 对象为消息队列类型 */ #endif #ifdef RT_USING_MEMPOOL RT_Object_Class_MemPool, /* 对象为内存池类型 */ #endif #ifdef RT_USING_DEVICE RT_Object_Class_Device, /* 对象为设备类型 */ #endif RT_Object_Class_Timer, /* 对象为定时器类型 */ ...
* timer structure */ struct rt_timer { struct rt_object parent; //内核对象 rt_list_t list; //链表节点 void (*timeout_func)(void *parameter); //定时器超时例程 void *parameter; //定时器例程的传入参数 rt_tick_t init_tick; //定时器的超时时间,即总共多长时间将产生超时事件 ...
Object_Class_Event, // event对象RT_Object_Class_MailBox, // mail box对象RT_Object_Class_MessageQueue, // message queueRT_Object_Class_MemHeap, // memory heapRT_Object_Class_MemPool, // memory poolRT_Object_Class_Device, // device对象RT_Object_Class_Timer, // timer对象RT_Object_Class_...
_Object_Class_MessageQueue,/**< 对象是消息队列 */RT_Object_Class_MemHeap,/**< 对象是内存堆 */RT_Object_Class_MemPool,/**< 对象是内存池 */RT_Object_Class_Device,/**< 对象是设备 */RT_Object_Class_Timer,/**< 对象是定时器 */RT_Object_Class_Module,/**< 对象是模块 */RT_Object_...