📄 timertest.c
字号:
}
else{
(void)Disp_Word(16,16,0x0039,0);
toggle=1;
}
err=OSSemPost(DisplaySem);
if(err!=OS_NO_ERR) OSTrap(TASK_1_PRIO+48);
*/
addr1=(TIMER_MESSAGE *)OSMemGet(pMemSml,&err);
if(err!=OS_NO_ERR){
OSTrap(TASK_1_PRIO+80);
}
addr1->Len=8;
addr1->Src=TASK_1_PRIO;
addr1->Des=TASK_TIMER_PRIO;
addr1->MID=Timer_Start;
addr1->TID=0x5678;
addr1->Val=50;
OSQPost(MsgQueue[TASK_TIMER_PRIO],(rom INT8U *)addr1);
}
err=OSMemPut(pMemSml,msg);
if(err!=OS_NO_ERR){
OSTrap(TASK_1_PRIO+96);
}
}
}
}
//===================================================================
void Task2 (void *data)
{
rom INT8U *msg;
INT8U err;
rom INT8U *addr1;
INT8U i;
INT16U times;
INT8U localH;
INT8U localM;
INT8U localS;
times=0x0030;
localH=17;
localM=15;
localS=0; //16:55:00
data = data;
for (;;) {
msg = (rom INT8U *)OSQPend(MsgQueue[TASK_2_PRIO],0, &err);
// if((unsigned short long)msg<0x11a006 || (unsigned short long)msg>=0x11C006
if((unsigned short long)msg<0x11a006 || (unsigned short long)msg>=0x11C006){
CheckBytes[0]=TASK_2_PRIO+64;
CheckBytes[1]=err;
CheckAddr=msg;
OSTrap(TASK_2_PRIO+64);
}
else if(msg[TASK_3_PRIO]!=TASK_3_PRIO
|| msg[TASK_4_PRIO]!=TASK_4_PRIO
|| msg[TASK_5_PRIO]!=TASK_5_PRIO
|| msg[TASK_6_PRIO]!=TASK_6_PRIO
|| msg[TASK_7_PRIO]!=TASK_7_PRIO
|| msg[TASK_8_PRIO]!=TASK_8_PRIO
|| msg[TASK_9_PRIO]!=TASK_9_PRIO
|| msg[TASK_10_PRIO]!=TASK_10_PRIO
|| msg[TASK_11_PRIO]!=TASK_11_PRIO
|| msg[TASK_12_PRIO]!=TASK_12_PRIO
|| msg[TASK_13_PRIO]!=TASK_13_PRIO){
CheckBytes[0]=TASK_2_PRIO;
CheckBytes[1]=err;
for(i=1;i<14;i++) CheckBytes[i+1]=msg[i];
CheckAddr=msg;
//CheckBytes[1]=(INT8U)((msg>>16)&0xff);
//CheckBytes[2]=(INT8U)((msg>>8)&0xff);
//CheckBytes[3]=(INT8U)(msg&0xff);
OSTrap(TASK_2_PRIO);
}
else{
if(times&0x0001){
localS++;
if(localS>=60){
localS=0;
localM++;
if(localM>=60){
localM=0;
localH++;
if(localH>=24) localH=0;
}
}
// i=Disp_Word(0,0,times,1);
OSSemPend (DisplaySem,0,&err);
if(err!=OS_NO_ERR) OSTrap(TASK_2_PRIO+48);
Display_Time(localH/10+0x30,localH%10+0x30,localM/10+0x30,localM%10+0x30,0);
err=OSSemPost(DisplaySem);
if(err!=OS_NO_ERR) OSTrap(TASK_2_PRIO+48);
}
else{
OSSemPend (DisplaySem,0,&err);
if(err!=OS_NO_ERR) OSTrap(TASK_2_PRIO+48);
Display_Time(localH/10+0x30,localH%10+0x30,localM/10+0x30,localM%10+0x30,1);
err=OSSemPost(DisplaySem);
if(err!=OS_NO_ERR) OSTrap(TASK_2_PRIO+48);
}
times++;
if(times>0x0039) times=0x0030;
/* addr1=OSMemGet(pMemSml,&err);
for(i=1;i<16;i++) addr1[i]=0xEE;
if(err!=OS_NO_ERR){
CheckBytes[0]=TASK_2_PRIO+80;
CheckAddr=addr1;
OSTrap(TASK_2_PRIO+80);
}
msg[TASK_2_PRIO]=TASK_2_PRIO;
for(i=1;i<16;i++) addr1[i]=msg[i];
OSQPost(MsgQueue[TASK_1_PRIO],addr1);
*/
err=OSMemPut(pMemSml,msg);
if(err!=OS_NO_ERR){
CheckBytes[0]=TASK_2_PRIO+96;
CheckAddr=msg;
OSTrap(TASK_2_PRIO+96);
}
// msg[TASK_2_PRIO]=TASK_2_PRIO;
// OSQPost(MsgQueue[TASK_1_PRIO],msg);
}
}
}
//===================================================================
void Task3 (void *data)
{
rom INT8U *msg;
INT8U err;
rom INT8U *addr1;
INT8U i;
data = data;
for (;;) {
msg = (rom INT8U *)OSQPend(MsgQueue[TASK_3_PRIO],0, &err);
// if((unsigned short long)msg<0x11a006 || (unsigned short long)msg>=0x11C006
if((unsigned short long)msg<0x11a006 || (unsigned short long)msg>=0x11C006){
CheckBytes[0]=TASK_3_PRIO+64;
CheckBytes[1]=err;
CheckAddr=msg;
OSTrap(TASK_3_PRIO+64);
}
else if(msg[TASK_4_PRIO]!=TASK_4_PRIO
|| msg[TASK_5_PRIO]!=TASK_5_PRIO
|| msg[TASK_6_PRIO]!=TASK_6_PRIO
|| msg[TASK_7_PRIO]!=TASK_7_PRIO
|| msg[TASK_8_PRIO]!=TASK_8_PRIO
|| msg[TASK_9_PRIO]!=TASK_9_PRIO
|| msg[TASK_10_PRIO]!=TASK_10_PRIO
|| msg[TASK_11_PRIO]!=TASK_11_PRIO
|| msg[TASK_12_PRIO]!=TASK_12_PRIO
|| msg[TASK_13_PRIO]!=TASK_13_PRIO){
CheckBytes[0]=TASK_3_PRIO;
CheckBytes[1]=err;
for(i=1;i<14;i++) CheckBytes[i+1]=msg[i];
CheckAddr=msg;
//CheckBytes[1]=(INT8U)((msg>>16)&0xff);
//CheckBytes[2]=(INT8U)((msg>>8)&0xff);
//CheckBytes[3]=(INT8U)(msg&0xff);
OSTrap(TASK_3_PRIO);
}
else{
addr1=OSMemGet(pMemSml,&err);
for(i=1;i<16;i++) addr1[i]=0xEE;
if(err!=OS_NO_ERR){
CheckBytes[0]=TASK_3_PRIO+80;
CheckAddr=addr1;
OSTrap(TASK_3_PRIO+80);
}
msg[TASK_3_PRIO]=TASK_3_PRIO;
for(i=1;i<16;i++) addr1[i]=msg[i];
OSQPost(MsgQueue[TASK_2_PRIO],addr1);
err=OSMemPut(pMemSml,msg);
if(err!=OS_NO_ERR){
CheckBytes[0]=TASK_3_PRIO+96;
CheckAddr=msg;
OSTrap(TASK_3_PRIO+96);
}
// msg[TASK_3_PRIO]=TASK_3_PRIO;
// OSQPost(MsgQueue[TASK_2_PRIO],msg);
}
}
}
//===================================================================
void Task4 (void *data)
{
rom INT8U *msg;
INT8U err;
rom INT8U *addr1;
INT8U i;
data = data;
for (;;) {
msg = (rom INT8U *)OSQPend(MsgQueue[TASK_4_PRIO],0, &err);
// if((unsigned short long)msg<0x11a006 || (unsigned short long)msg>=0x11C006
if((unsigned short long)msg<0x11a006 || (unsigned short long)msg>=0x11C006){
CheckBytes[0]=TASK_4_PRIO+64;
CheckBytes[1]=err;
CheckAddr=msg;
OSTrap(TASK_4_PRIO+64);
}
else if(msg[TASK_5_PRIO]!=TASK_5_PRIO
|| msg[TASK_6_PRIO]!=TASK_6_PRIO
|| msg[TASK_7_PRIO]!=TASK_7_PRIO
|| msg[TASK_8_PRIO]!=TASK_8_PRIO
|| msg[TASK_9_PRIO]!=TASK_9_PRIO
|| msg[TASK_10_PRIO]!=TASK_10_PRIO
|| msg[TASK_11_PRIO]!=TASK_11_PRIO
|| msg[TASK_12_PRIO]!=TASK_12_PRIO
|| msg[TASK_13_PRIO]!=TASK_13_PRIO){
CheckBytes[0]=TASK_4_PRIO;
CheckBytes[1]=err;
for(i=1;i<14;i++) CheckBytes[i+1]=msg[i];
CheckAddr=msg;
LoopForTest();
}
else{
addr1=OSMemGet(pMemSml,&err);
for(i=1;i<16;i++) addr1[i]=0xEE;
if(err!=OS_NO_ERR){
CheckBytes[0]=TASK_4_PRIO+80;
CheckAddr=addr1;
LoopForTest();
}
msg[TASK_4_PRIO]=TASK_4_PRIO;
for(i=1;i<16;i++) addr1[i]=msg[i];
OSQPost(MsgQueue[TASK_3_PRIO],addr1);
err=OSMemPut(pMemSml,msg);
if(err!=OS_NO_ERR){
CheckBytes[0]=TASK_4_PRIO+96;
CheckAddr=msg;
LoopForTest();
}
// msg[TASK_4_PRIO]=TASK_4_PRIO;
// OSQPost(MsgQueue[TASK_3_PRIO],msg);
}
}
}
//===================================================================
void Task5 (void *data)
{
rom INT8U *msg;
INT8U err;
rom INT8U *addr1;
INT8U i;
data = data;
for (;;) {
msg = (rom INT8U *)OSQPend(MsgQueue[TASK_5_PRIO],0, &err);
// if((unsigned short long)msg<0x11a006 || (unsigned short long)msg>=0x11C006
if((unsigned short long)msg<0x11a006 || (unsigned short long)msg>=0x11C006){
CheckBytes[0]=TASK_5_PRIO+64;
CheckBytes[1]=err;
CheckAddr=msg;
LoopForTest();
}
else if(msg[TASK_6_PRIO]!=TASK_6_PRIO
|| msg[TASK_7_PRIO]!=TASK_7_PRIO
|| msg[TASK_8_PRIO]!=TASK_8_PRIO
|| msg[TASK_9_PRIO]!=TASK_9_PRIO
|| msg[TASK_10_PRIO]!=TASK_10_PRIO
|| msg[TASK_11_PRIO]!=TASK_11_PRIO
|| msg[TASK_12_PRIO]!=TASK_12_PRIO
|| msg[TASK_13_PRIO]!=TASK_13_PRIO){
CheckBytes[0]=TASK_5_PRIO;
CheckBytes[1]=err;
for(i=1;i<14;i++) CheckBytes[i+1]=msg[i];
CheckAddr=msg;
//CheckBytes[1]=(INT8U)((msg>>16)&0xff);
//CheckBytes[2]=(INT8U)((msg>>8)&0xff);
//CheckBytes[3]=(INT8U)(msg&0xff);
LoopForTest();
}
else{
addr1=OSMemGet(pMemSml,&err);
for(i=1;i<16;i++) addr1[i]=0xEE;
if(err!=OS_NO_ERR){
CheckBytes[0]=TASK_5_PRIO+80;
CheckAddr=addr1;
LoopForTest();
}
msg[TASK_5_PRIO]=TASK_5_PRIO;
for(i=1;i<16;i++) addr1[i]=msg[i];
OSQPost(MsgQueue[TASK_4_PRIO],addr1);
err=OSMemPut(pMemSml,msg);
if(err!=OS_NO_ERR){
CheckBytes[0]=TASK_5_PRIO+96;
CheckAddr=msg;
LoopForTest();
}
// msg[TASK_5_PRIO]=TASK_5_PRIO;
// OSQPost(MsgQueue[TASK_4_PRIO],msg);
}
}
}
//===================================================================
void Task6 (void *data)
{
rom INT8U *msg;
INT8U err;
rom INT8U *addr1;
INT8U i;
data = data;
for (;;) {
msg = (rom INT8U *)OSQPend(MsgQueue[TASK_6_PRIO],0, &err);
// if((unsigned short long)msg<0x11a006 || (unsigned short long)msg>=0x11C006
if((unsigned short long)msg<0x11a006 || (unsigned short long)msg>=0x11C006){
CheckBytes[0]=TASK_6_PRIO+64;
CheckBytes[1]=err;
CheckAddr=msg;
LoopForTest();
}
else if(msg[TASK_7_PRIO]!=TASK_7_PRIO
|| msg[TASK_8_PRIO]!=TASK_8_PRIO
|| msg[TASK_9_PRIO]!=TASK_9_PRIO
|| msg[TASK_10_PRIO]!=TASK_10_PRIO
|| msg[TASK_11_PRIO]!=TASK_11_PRIO
|| msg[TASK_12_PRIO]!=TASK_12_PRIO
|| msg[TASK_13_PRIO]!=TASK_13_PRIO){
CheckBytes[0]=TASK_6_PRIO;
CheckBytes[1]=err;
for(i=1;i<14;i++) CheckBytes[i+1]=msg[i];
CheckAddr=msg;
//CheckBytes[1]=(INT8U)((msg>>16)&0xff);
//CheckBytes[2]=(INT8U)((msg>>8)&0xff);
//CheckBytes[3]=(INT8U)(msg&0xff);
LoopForTest();
}
else{
addr1=OSMemGet(pMemSml,&err);
for(i=1;i<16;i++) addr1[i]=0xEE;
if(err!=OS_NO_ERR){
CheckBytes[0]=TASK_6_PRIO+80;
CheckAddr=addr1;
LoopForTest();
}
msg[TASK_6_PRIO]=TASK_6_PRIO;
for(i=1;i<16;i++) addr1[i]=msg[i];
OSQPost(MsgQueue[TASK_5_PRIO],addr1);
err=OSMemPut(pMemSml,msg);
if(err!=OS_NO_ERR){
CheckBytes[0]=TASK_6_PRIO+96;
CheckAddr=msg;
LoopForTest();
}
// msg[TASK_6_PRIO]=TASK_6_PRIO;
// OSQPost(MsgQueue[TASK_5_PRIO],msg);
}
}
}
//===================================================================
void Task7 (void *data)
{
rom INT8U *msg;
INT8U err;
rom INT8U *addr1;
INT8U i;
data = data;
for (;;) {
msg = (rom INT8U *)OSQPend(MsgQueue[TASK_7_PRIO],0, &err);
// if((unsigned short long)msg<0x11a006 || (unsigned short long)msg>=0x11C006
if((unsigned short long)msg<0x11a006 || (unsigned short long)msg>=0x11C006){
CheckBytes[0]=TASK_7_PRIO+64;
CheckBytes[1]=err;
CheckAddr=msg;
LoopForTest();
}
else if(msg[TASK_8_PRIO]!=TASK_8_PRIO
|| msg[TASK_9_PRIO]!=TASK_9_PRIO
|| msg[TASK_10_PRIO]!=TASK_10_PRIO
|| msg[TASK_11_PRIO]!=TASK_11_PRIO
|| msg[TASK_12_PRIO]!=TASK_12_PRIO
|| msg[TASK_13_PRIO]!=TASK_13_PRIO){
CheckBytes[0]=TASK_7_PRIO;
CheckBytes[1]=err;
for(i=1;i<14;i++) CheckBytes[i+1]=msg[i];
CheckAddr=msg;
//CheckBytes[1]=(INT8U)((msg>>16)&0xff);
//CheckBytes[2]=(INT8U)((msg>>8)&0xff);
//CheckBytes[3]=(INT8U)(msg&0xff);
LoopForTest();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -