|
本帖最后由 ycping 于 2017-1-11 18:27 编辑
论坛的小小调度器V2版,封装里面使用了结构体。这东西会生成很大的代码量。
这违背了初衷了吧。
里面的例子就做个呼吸灯去掉了800个字节。
我特意和以前的对比了一下。程序就是闪烁一个灯。V1和V2代码分别是85和174. 差了很远啊。
v1 代码
#include<at89x51.h>
#include "schedule.h"
unsigned char SCH_TASK_LC[SCH_MAXTASKS];
volatile unsigned char SCH_timers[SCH_MAXTASKS];
unsigned char Task1(unsigned char lc)
{
SCH_BEGIN(lc);
while(1){
P0_1 = 1;
SCH_WaitX(lc,20);
P0_1 = 0;
SCH_WaitX(lc,20);
}
SCH_END(lc);
}
void main(void)
{
while(1)
{
UpdateSCH_timers();
SCH_RunTask(Task1,SCH_task1);
}
}
Program Size: data=12.0 xdata=0 code=85
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
V2 代码
#include<at89x51.h>
#include "xxdd.h"
Class(ledtask)
{
C_task task;
}led1;
TaskFun(ledtask)
{
while(1)
{
P0_1 = 1;
WaitX(20);
P0_1 = 0;
WaitX(20);
}
}EndFun
void main()
{
while(1)
{
UpdateTimer(led1);
RunTask(ledtask, led1);
}
}
Program Size: data=12.0 xdata=0 code=174
|
阿莫论坛20周年了!感谢大家的支持与爱护!!
如果天空是黑暗的,那就摸黑生存;
如果发出声音是危险的,那就保持沉默;
如果自觉无力发光,那就蜷伏于牆角。
但是,不要习惯了黑暗就为黑暗辩护;
也不要为自己的苟且而得意;
不要嘲讽那些比自己更勇敢的人。
我们可以卑微如尘土,但不可扭曲如蛆虫。
|