系统任务的周期时间改为ulong,以表示更大的时间值

输出长整型%ld,无符号长整型%llu
This commit is contained in:
nnhy 2014-10-08 15:53:54 +00:00
parent d3a0185027
commit b353cd23d7
3 changed files with 7 additions and 6 deletions

View File

@ -505,7 +505,7 @@ void TSys::ToHex(byte* buf, byte* src, uint len)
#define __TASK__MODULE__ 1 #define __TASK__MODULE__ 1
#ifdef __TASK__MODULE__ #ifdef __TASK__MODULE__
// 创建任务返回任务编号。priority优先级dueTime首次调度时间usperiod调度间隔us-1表示仅处理一次 // 创建任务返回任务编号。priority优先级dueTime首次调度时间usperiod调度间隔us-1表示仅处理一次
uint TSys::AddTask(Action func, void* param, uint dueTime, int period) uint TSys::AddTask(Action func, void* param, ulong dueTime, long period)
{ {
// 屏蔽中断,否则可能有线程冲突 // 屏蔽中断,否则可能有线程冲突
SmartIRQ irq; SmartIRQ irq;
@ -524,7 +524,8 @@ uint TSys::AddTask(Action func, void* param, uint dueTime, int period)
task->NextTime = Time.Current() + dueTime; task->NextTime = Time.Current() + dueTime;
_TaskCount++; _TaskCount++;
debug_printf("添加任务%d 0x%08x FirstTime=%dus Period=%dus\r\n", task->ID, func, dueTime, period); // 输出长整型%ld无符号长整型%llu
debug_printf("添加任务%d 0x%08x FirstTime=%lluus Period=%ldus\r\n", task->ID, func, dueTime, period);
return task->ID; return task->ID;
} }

4
Sys.h
View File

@ -112,7 +112,7 @@ private:
int ID; // 编号 int ID; // 编号
Action Callback;// 回调 Action Callback;// 回调
void* Param; // 参数 void* Param; // 参数
int Period; // 周期us long Period; // 周期us
ulong NextTime; // 下一次执行时间 ulong NextTime; // 下一次执行时间
}; };
@ -122,7 +122,7 @@ private:
public: public:
// 创建任务返回任务编号。dueTime首次调度时间usperiod调度间隔us-1表示仅处理一次 // 创建任务返回任务编号。dueTime首次调度时间usperiod调度间隔us-1表示仅处理一次
uint AddTask(Action func, void* param, uint dueTime = 0, int period = 0); uint AddTask(Action func, void* param, ulong dueTime = 0, long period = 0);
void RemoveTask(uint taskid); void RemoveTask(uint taskid);
void Start(); // 开始系统大循环 void Start(); // 开始系统大循环
void StartInternal(); void StartInternal();

View File

@ -138,7 +138,7 @@ void RenewDHCP(void* param)
void Dhcp::Start() void Dhcp::Start()
{ {
int s = 3; int s = 10;
_expiredTime = Time.Current() + s * 1000000; _expiredTime = Time.Current() + s * 1000000;
dhcpid = (uint)Time.Current(); dhcpid = (uint)Time.Current();
@ -253,7 +253,7 @@ void Dhcp::OnReceive(UDP_HEADER* udp, MemoryStream& ms)
debug_printf("DHCP IPLeaseTime:%ds\r\n", time); debug_printf("DHCP IPLeaseTime:%ds\r\n", time);
// DHCP租约过了一半以后重新获取IP地址 // DHCP租约过了一半以后重新获取IP地址
if(time > 0) Sys.AddTask(RenewDHCP, Tip, time / 2 * 1000000, -1); if(time > 0) Sys.AddTask(RenewDHCP, Tip, (ulong)time / 2 * 1000000, -1);
} }
//return true; //return true;