📄 test1.c
字号:
#include "..\4510b\includes.h"
OS_STK TestTaskStk0[100];
OS_STK TestTaskStk1[7][100];
BYTE TaskData[8];
void TestTask(void *pdata);
void TaskStartCreateTasks(void);
void C_Entry()
{
int i;
//init the system
Disable_Int(nGLOBAL_INT);
IOPMOD |= 0xFF; // General Purpose Register Mode Select,io[0-7]--output
IOPDATA = 0xFF; // IO port output 0
InitInterrupt() ; //in this function will disable global int
UART_Initialize(); /* Initialize UART channel 0,1 */
tm_init(TIMER_DEV0,(ONE_SECOND/OS_TICKS_PER_SEC));
OSInit();
for(i=0;i<8;i++)
TaskData[i]=i;
OSTaskCreate(TestTask,(void*)0,&TestTaskStk0[99],0);
OSStart();
}
void TestTask(void *pdata)
{
BOOLEAN led_state=FALSE;
pdata=pdata;
Enable_Int(nGLOBAL_INT);
Timer0Start();
TaskStartCreateTasks();
while(1) {
OSTimeDlyHMSM(0,0,1,0);
if(led_state==FALSE)
{
led_state=TRUE;
IOPDATA &= 0xFE;
}else
{
led_state=FALSE;
IOPDATA |= 0x01;
}
}
}
void TestTaskN(void *pdata)
{
BYTE Temp=*((BYTE*)pdata);
BOOLEAN led_state=FALSE;
pdata=pdata;
while(1) {
OSTimeDlyHMSM(0,0,Temp+1,0);
if(led_state==FALSE)
{
led_state=TRUE;
IOPDATA &= (0xFF&(~(1<<Temp)));
}else
{
led_state=FALSE;
IOPDATA |= (1<<Temp);
}
}
}
void TaskStartCreateTasks(void)
{
int i;
for(i=1;i<8;i++)
{
OSTaskCreate(TestTaskN,(void*)&TaskData[i],&TestTaskStk1[i-1][99],i);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -