📄 tinter.c
字号:
asm
{
cmp r0, portioa;
bne Task47;
}
Task[48].WaitStatus =Task[48].WaitStatus | 0x40;//定时到
//Task[48].WaitControl=Task[48].WaitControl & 0xBF;//定时到
/* Dbase========Task============================================ */
Task47: value=Task[47].Use;// asm eldb value, 2350[portid];
image=Task[47].WaitControl;
asm
{
bbc value, 0, Task46;
bbs image, 7, Task47_timer;
}
asm br Task46;
Task47_timer: portioa=Task[47].TimerCount;
portioa=portioa-1;
Task[47].TimerCount=portioa;
asm
{
cmp r0,portioa;
bne Task47_OverPoll;
}
portioa=Task[47].TimerLimit;
if(portioa!=0)
{
Task[47].WaitStatus=Task[47].WaitStatus | 0x80; //定时到
Task[47].TimerCount=portioa;//初始化时间基值
}
Task47_OverPoll:asm
{
bbs image, 6, Task47_OverWait;
};
asm br Task46;
Task47_OverWait:portioa=Task[47].OverWaitCount;
portioa=portioa-1;
Task[47].OverWaitCount=portioa;
asm
{
cmp r0, portioa;
bne Task46;
}
Task[47].WaitStatus =Task[47].WaitStatus | 0x40;//定时到
//Task[47].WaitControl=Task[47].WaitControl & 0xBF;//定时到
/* =============COM===DEVICE==16C550===16C554======================================= */
Task46: value=Task[46].Use;
image=Task[46].WaitControl;
asm
{
bbc value, 0, TASK45;
bbs image, 7, TASK46_timer;
}
asm br TASK45;
TASK46_timer: portioa=Task[46].TimerCount;
portioa=portioa-1;
Task[46].TimerCount=portioa;
asm
{
cmp r0,portioa;
bne TASK46_OverPoll;
}
portioa=Task[46].TimerLimit;
if(portioa!=0)
{
Task[46].WaitStatus=Task[46].WaitStatus | 0x80; //定时到
Task[46].TimerCount=portioa;//初始化时间基值
}
TASK46_OverPoll:asm
{
bbs image, 6, TASK46_OverWait;
};
asm br TASK45;
TASK46_OverWait:portioa=Task[46].OverWaitCount;
portioa=portioa-1;
Task[46].OverWaitCount=portioa;
asm
{
cmp r0, portioa;
bne TASK45;
}
Task[46].WaitStatus =Task[46].WaitStatus | 0x40;//定时到
//Task[46].WaitControl=Task[46].WaitControl & 0xBF;//定时到
TASK45:
/* =============COM6==TASK==16C554===CSD================================== */
TASK07: value=Task[7].Use;
image=Task[7].WaitControl;
asm
{
bbc value, 0, TASK06;
bbs image, 7, TASK07_timer;
}
asm br TASK06;
TASK07_timer: portioa=Task[7].TimerCount;
portioa=portioa-1;
Task[7].TimerCount=portioa;
asm
{
cmp r0,portioa;
bne TASK07_OverPoll;
}
portioa=Task[7].TimerLimit;
if(portioa!=0)
{
Task[7].WaitStatus=Task[7].WaitStatus | 0x80; //定时到
Task[7].TimerCount=portioa;//初始化时间基值
}
TASK07_OverPoll:asm
{
bbs image, 6, TASK07_OverWait;
};
asm br TASK06;
TASK07_OverWait:portioa=Task[7].OverWaitCount;
portioa=portioa-1;
Task[7].OverWaitCount=portioa;
asm
{
cmp r0, portioa;
bne TASK06;
}
Task[7].WaitStatus =Task[7].WaitStatus | 0x40;//定时到
//Task[7].WaitControl=Task[7].WaitControl & 0xBF;//定时到
/* =============COM5===TASK==16C554===CSC========================================= */
TASK06: value=Task[6].Use;
image=Task[6].WaitControl;
asm
{
bbc value, 0, TASK05;
bbs image, 7, TASK06_timer;
}
asm br TASK05;
TASK06_timer: portioa=Task[6].TimerCount;
portioa=portioa-1;
Task[6].TimerCount=portioa;
asm
{
cmp r0,portioa;
bne TASK06_OverPoll;
}
portioa=Task[6].TimerLimit;
if(portioa!=0)
{
Task[6].WaitStatus=Task[6].WaitStatus | 0x80; //定时到
Task[6].TimerCount=portioa;//初始化时间基值
}
TASK06_OverPoll:asm
{
bbs image, 6, TASK06_OverWait;
};
asm br TASK05;
TASK06_OverWait:portioa=Task[6].OverWaitCount;
portioa=portioa-1;
Task[6].OverWaitCount=portioa;
asm
{
cmp r0, portioa;
bne TASK05;
}
Task[6].WaitStatus =Task[6].WaitStatus | 0x40;//定时到
//Task[6].WaitControl=Task[6].WaitControl & 0xBF;//定时到
/* =============COM4===TASK==16C554===CSB========================================= */
TASK05: value=Task[5].Use;
image=Task[5].WaitControl;
asm
{
bbc value, 0, TASK04;
bbs image, 7, TASK05_timer;
}
asm br TASK04;
TASK05_timer: portioa=Task[5].TimerCount;
portioa=portioa-1;
Task[5].TimerCount=portioa;
asm
{
cmp r0,portioa;
bne TASK05_OverPoll;
}
portioa=Task[5].TimerLimit;
if(portioa!=0)
{
Task[5].WaitStatus=Task[5].WaitStatus | 0x80; //定时到
Task[5].TimerCount=portioa;//初始化时间基值
}
TASK05_OverPoll:asm
{
bbs image, 6, TASK05_OverWait;
};
asm br TASK04;
TASK05_OverWait:portioa=Task[5].OverWaitCount;
portioa=portioa-1;
Task[5].OverWaitCount=portioa;
asm
{
cmp r0, portioa;
bne TASK04;
}
Task[5].WaitStatus =Task[5].WaitStatus | 0x40;//定时到
//Task[5].WaitControl=Task[5].WaitControl & 0xBF;//定时到
/* =============COM3===TASK==16C554===CSA========================================= */
TASK04: value=Task[4].Use;
image=Task[4].WaitControl;
asm
{
bbc value, 0, TASK03;
bbs image, 7, TASK04_timer;
}
asm br TASK03;
TASK04_timer: portioa=Task[4].TimerCount;
portioa=portioa-1;
Task[4].TimerCount=portioa;
asm
{
cmp r0,portioa;
bne TASK04_OverPoll;
}
portioa=Task[4].TimerLimit;
if(portioa!=0)
{
Task[4].WaitStatus=Task[4].WaitStatus | 0x80; //定时到
Task[4].TimerCount=portioa;//初始化时间基值
}
TASK04_OverPoll:asm
{
bbs image, 6, TASK04_OverWait;
};
asm br TASK03;
TASK04_OverWait:portioa=Task[4].OverWaitCount;
portioa=portioa-1;
Task[4].OverWaitCount=portioa;
asm
{
cmp r0, portioa;
bne TASK03;
}
Task[4].WaitStatus =Task[4].WaitStatus | 0x40;//定时到
//Task[4].WaitControl=Task[4].WaitControl & 0xBF;//定时到
/* =============COM2===TASK=======16C550=============================== */
TASK03: value=Task[3].Use;
image=Task[3].WaitControl;
asm
{
bbc value, 0, TASK02;
bbs image, 7, TASK03_timer;
}
asm br TASK02;
TASK03_timer: portioa=Task[3].TimerCount;
portioa=portioa-1;
Task[3].TimerCount=portioa;
asm
{
cmp r0,portioa;
bne TASK03_OverPoll;
}
portioa=Task[3].TimerLimit;
if(portioa!=0)
{
Task[3].WaitStatus=Task[3].WaitStatus | 0x80; //定时到
Task[3].TimerCount=portioa;//初始化时间基值
}
TASK03_OverPoll:asm
{
bbs image, 6, TASK03_OverWait;
};
asm br TASK02;
TASK03_OverWait:portioa=Task[3].OverWaitCount;
portioa=portioa-1;
Task[3].OverWaitCount=portioa;
asm
{
cmp r0, portioa;
bne TASK02;
}
Task[3].WaitStatus =Task[3].WaitStatus | 0x40;//定时到
//Task[3].WaitControl=Task[3].WaitControl & 0xBF;//定时到
/* =============COM1===TASK=========CPU==UART========================== */
TASK02: value=Task[2].Use;
image=Task[2].WaitControl;
asm
{
bbc value, 0, Task01;
bbs image, 7, Task02_timer;
}
asm br Task01;
Task02_timer: portioa=Task[2].TimerCount;
portioa=portioa-1;
Task[2].TimerCount=portioa;
asm
{
cmp r0,portioa;
bne Task02_OverPoll;
}
portioa=Task[2].TimerLimit;
if(portioa!=0)
{
Task[2].WaitStatus=Task[2].WaitStatus | 0x80; //定时到
Task[2].TimerCount=portioa;//初始化时间基值
}
Task02_OverPoll:asm
{
bbs image, 6, Task02_OverWait;
};
asm br Task01;
Task02_OverWait:portioa=Task[2].OverWaitCount;
portioa=portioa-1;
Task[2].OverWaitCount=portioa;
asm
{
cmp r0, portioa;
bne Task01;
}
Task[2].WaitStatus =Task[2].WaitStatus | 0x40;//定时到
//Task[2].WaitControl=Task[2].WaitControl & 0xBF;//定时到
/* ========CAN1FRAME==TASK====================================== */
Task01: value=Task[1].Use;
image=Task[1].WaitControl;
asm
{
bbc value, 0, Task00;
bbs image, 7, Task01_timer;
}
asm br Task00;
Task01_timer: portioa=Task[1].TimerCount;
portioa=portioa-1;
Task[1].TimerCount=portioa;
asm
{
cmp r0,portioa;
bne Task01_OverPoll;
}
portioa=Task[1].TimerLimit;
if(portioa!=0)
{
Task[1].WaitStatus=Task[1].WaitStatus | 0x80; //定时到
Task[1].TimerCount=portioa;//初始化时间基值
}
Task01_OverPoll:asm
{
bbs image, 6, Task01_OverWait;
};
asm br Task00;
Task01_OverWait:portioa=Task[1].OverWaitCount;
portioa=portioa-1;
Task[1].OverWaitCount=portioa;
asm
{
cmp r0, portioa;
bne Task00;
}
Task[1].WaitStatus =Task[1].WaitStatus | 0x40;//定时到
//Task[1].WaitControl=Task[1].WaitControl & 0xBF;//定时到
/* =============CAN0FRAME==TASK====================================== */
Task00: value=Task[0].Use;
image=Task[0].WaitControl;
asm
{
bbc value, 0, Taskend;
bbs image, 7, Task00_timer;
}
asm br Taskend;
Task00_timer: portioa=Task[0].TimerCount;
portioa=portioa-1;
Task[0].TimerCount=portioa;
asm
{
cmp r0,portioa;
bne Task00_OverPoll;
}
portioa=Task[0].TimerLimit;
if(portioa!=0)
{
Task[0].WaitStatus=Task[0].WaitStatus | 0x80; //定时到
Task[0].TimerCount=portioa;//初始化时间基值
}
Task00_OverPoll:asm
{
bbs image, 6, Task00_OverWait;
};
asm br Taskend;
Task00_OverWait:portioa=Task[0].OverWaitCount;
portioa=portioa-1;
Task[0].OverWaitCount=portioa;
asm
{
cmp r0, portioa;
bne Taskend;
}
Task[0].WaitStatus =Task[0].WaitStatus | 0x40;//定时到
//Task[0].WaitControl=Task[0].WaitControl & 0xBF;//定时到
Taskend: msvalue++;
if(pVar->Can_clock_fg!=0)
{
pVar->Can_ms.Value=pVar->Can_ms.Value+0xfa00;
if(pVar->Can_ms.VW.HighW>=999)
{
portid=DS_REGA;
value=0x26;
asm estb value, [portid];
portid=DS_REGB;
value=0x8E;
asm estb value, [portid];
value=pVar->Can_second;
data=pVar->Can_minute;
value++;
if(value>=60)
{
value=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -