📄 demo.c
字号:
#include <includes.h>
#define MAX_STK_SIZE 64
void Init_Device(void);
void TaskStartyya(void *yydata) reentrant;
//void TaskStartyyb(void *yydata) reentrant;
//void TaskStartyyc(void *yydata) reentrant;
void TaskStartyye(void *yydata) reentrant;
OS_STK TaskStartStkyya[MAX_STK_SIZE+1];//注意:我在ASM文件中设置?STACK空间为40H即64,不要超出范围。
OS_STK TaskStartStkyyb[MAX_STK_SIZE+1];//用户栈多一个字节存长度
OS_STK TaskStartStkyyc[MAX_STK_SIZE+1];
OS_STK TaskStartStkyye[MAX_STK_SIZE+1];
extern INT8U Ibuf0[];
//extern INT8U OSCPUUsage;
//OS_EVENT *keyp; //声明信号量
sbit led = P1^6;
sbit key = P3^7;
bit keyps;
INT8U i0,j0,k0;
INT8U code str[4] = {"123"};
void main(void)
{ Init_Device();
// keyp = OSSemCreate(0);
OSInit();
OSTaskCreate(TaskStartyya, (void *)0, &TaskStartStkyya[0],4);
// OSTaskCreate(TaskStartyyc, (void *)0, &TaskStartStkyyc[0],4);
// OSTaskCreate(TaskStartyyb, (void *)0, &TaskStartStkyyb[0],5);
OSTaskCreate(TaskStartyye, (void *)0, &TaskStartStkyye[0],6);
OSStart();
}
void TaskStartyya(void *yydata) reentrant
{
yydata=yydata;
OSStatInit(); //初始化统计任务
for(;;){
for (i0 = 0;i0<k0;i0++)
{
for (j0 = 0;j0 <6;j0++)
{;}
}
OSTimeDly(1);
}
}
void TaskStartyyb(void *yydata) reentrant
{
yydata=yydata;
for(;;){
OSTimeDly(50);
// k0 ++;
}
}
/*
void TaskStartyyc(void *yydata) reentrant
{
yydata=yydata;
for(;;){ led = !led;
}
}
*/
void TaskStartyye(void *yydata) reentrant
{ INT8U i,j,k;
yydata=yydata;
for(;;){
// led = !led;
// if(key)
// OSTimeDly(10);
// else
// OSTimeDly(50);
for (i = 0;i<3;i++)
{
for(j = 0;j<3;j++)
{
k = i+j;
if(k>=3) k = i +j-3;
if(str[j] != Ibuf0[k])
j = 5; //两字符串不等,j输出5+1;
}
if (j == 3)
i = 10; //两字符第一次相等,i输出10+1;
}
led = ~led;
if (i == 11)
OSTimeDly(2);
else
OSTimeDly(50); //若串口没有输入“123”则慢闪
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -