uCOS-II为什么任务都不运行啊?新手请指教!
#define TASK_INIT_ID 11
#define TASK_INIT_PRIO TASK_INIT_ID
#define TASK_INIT_STACK_SIZE 512
OS_STK TASK_INIT_STACK[TASK_INIT_STACK_SIZE];
void TaskInit(void *pdata);
#define TASK_BUS_TEST_ID 12
#define TASK_BUS_TEST_PRIO TASK_BUS_TEST_ID
#define TASK_BUS_TEST_STACK_SIZE 512
OS_STK TASK_BUS_TEST_STACK[TASK_BUS_TEST_STACK_SIZE];
void TaskBusTest(void *pdata);
#define TASK_LED_ID 14
#define TASK_LED_PRIO TASK_LED_ID
#define TASK_LED_STACK_SIZE 512
OS_STK TASK_LED_STACK[TASK_LED_STACK_SIZE];
void TaskLed(void *pdata);
#define TASK_TEST_ID 13
#define TASK_TEST_PRIO TASK_TEST_ID
#define TASK_TEST_STACK_SIZE 512
OS_STK TASK_TEST_STACK[TASK_TEST_STACK_SIZE];
void TaskTest(void *pdata);
int main (void)
{
OSInit();
// taskcon = OSSemCreate(1);
OSTaskCreateExt(TaskInit,
(void *)0,
&TASK_INIT_STACK[TASK_INIT_STACK_SIZE - 1],
TASK_INIT_PRIO,
TASK_INIT_ID,
&TASK_INIT_STACK[0],
TASK_INIT_STACK_SIZE,
(void *)0,
OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);
OSStart();
return 0;
}
void TaskInit(void *pdata)
{
TargetInit();
RTCInit();
I2CMasterInit(50000, 8);
iButtonInit(0, 4, 17); // P4.17
BusInit();
iButtonTest();
/*OSTaskCreateExt(TaskBusTest,
(void *)0,
&TASK_BUS_TEST_STACK[TASK_BUS_TEST_STACK_SIZE - 1],
TASK_BUS_TEST_PRIO,
TASK_BUS_TEST_ID,
&TASK_BUS_TEST_STACK[0],
TASK_BUS_TEST_STACK_SIZE,
(void *)0,
OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);*/
OSTaskCreateExt(TaskLed,
(void *)0,
&TASK_LED_STACK[TASK_LED_STACK_SIZE - 1],
TASK_LED_PRIO,
TASK_LED_ID,
&TASK_LED_STACK[0],
TASK_LED_STACK_SIZE,
(void *)0,
OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);
OSTaskCreateExt(TaskTest,
(void *)0,
&TASK_TEST_STACK[TASK_TEST_STACK_SIZE - 1],
TASK_TEST_PRIO,
TASK_TEST_ID,
&TASK_TEST_STACK[0],
TASK_TEST_STACK_SIZE,
(void *)0,
OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);
OSTaskDel(OS_PRIO_SELF);
}
void TaskLed (void *pdata)
{
INT8U err;
SetPINSEL(3, 31, 0); // Set P3.31 func 0 (GPIO)
LPC_FIO->FIO[3].DIR |= (1UL << 31);
while (1) {
// OSSemPend(taskcon,0,&err);
// UARTSendByte((INT8U)TASK_LED_ID);
LPC_FIO->FIO[3].SET = (1UL << 31);
OSTimeDly(OSmsToTick(500));
LPC_FIO->FIO[3].CLR = (1UL << 31);
OSTimeDly(OSmsToTick(500));
// OSSemPost(taskcon); //
}
}
void TaskTest (void *pdata)
{
INT8U err;
while (1) {
OSTimeDly(OSmsToTick(1000UL));
// OSSemPend(taskcon,0,&err);
// UARTSendByte((INT8U)TASK_TEST_ID);
// OSSemPost(taskcon);
}
}
gipo设置都没问题,呼吸灯都不亮。