|
本帖最后由 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周年了!感谢大家的支持与爱护!!
阿莫论坛才是最爱国的,关心国家的经济、社会的发展、担心国家被别国牵连卷入战争、知道珍惜来之不易的和平发展,知道师夷之长,关注世界的先进文化与技术,也探讨中国文化的博大精深,也懂得警惕民粹主义的祸国殃民等等等等,无不是爱国忧民的表现。(坛友:tianxian)
|