·上一文章:P89LPC9251片上温度传感器的使用方法
·下一文章:基于STC11F02E的RS232/RS485转换器设计
2.4定时器的删除
在目标定时器到期之前,由于某种原因用户可能会要求取消定时器。如重发定时器,用户在发送数据帧后启动该定时器,并等待对方返回响应帧。如果在定时时间结束时没有收到响应帧,用户就需要重发原数据帧;如果在定时时间结束之前收到响应帧,用户就需要马上取消该定时器,然后进行下一次通信过程。
删除定时器函数以定时器节点ID号作为输入参数,将定时器节点设为空闲状态,并根据需要更新辅助定时器,流程如图3所示。
2.5定时器的驱动
软件定时器的驱动由硬件定时器提供。在硬件定时器中断中,首先将辅助定时器的值减1。如果辅助定时器值为O,则表示定时值最小的定时器已经超时,应将对应的消息发送给用户任务,将节点置为空闲状态,并重新计算其他节点的定时值,同时查找定时值最小的节点,更新辅助定时器。驱动流程如图4所示。
关键代码如下:
结语
本文设计的定时器管理器模块,具有逻辑简单、效率高的特点,在实验室自主研发的无线传感器网络中得到应用。在共包含30个节点的温、湿、光信息采集系统中,使用该定时器管理模块的无线传感器网络协议运行高效、稳定。