|
|
- [求助]在2104上调试UCOSII时出现的问题
作者:tsjd20829 时间:2006-5-30 17:14:42
我在EasyARM2104上调试UCOSII时发现了个问题。
单个任务在该系统下都能正常运行。一旦同时运行多个任务就不行了。
请高手分析一下是什么原因?
附原代码
#include "config.h"
#define TASK_STK_SIZE 128
#define SPI_CS 0x00000100 //P0.8
#define SPI_DATA 0x00000040 //P0.6
#define SPI_CLK 0x00000010 //P0.4
#define BEEP 0x00000080 //P0.7
#define SPI_IOCON 0x00003dd0
OS_STK Task1Stk[TASK_STK_SIZE];
OS_STK Task2Stk[TASK_STK_SIZE];
OS_STK Task3Stk[TASK_STK_SIZE];
OS_STK TaskStartStk[TASK_STK_SIZE];
void Task1(void *data);
void Task2(void *data);
void Task3(void *data);
void TaskStart(void *data);
int main (void)
{
OSInit();
OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[TASK_STK_SIZE - 1], 0);
OSStart();
return 0;
}
void TaskStart (void *pdata)
{
#if OS_CRITICAL_METHOD == 3
OS_CPU_SR cpu_sr;
#endif
pdata = pdata;
PINSEL0 =0x00000000;
PINSEL1 =0x00000000;
IODIR = SPI_IOCON;
TargetInit();
OSTaskCreate(Task1, (void *)0, &Task1Stk[TASK_STK_SIZE - 1], 1);
OSTaskCreate(Task2, (void *)0, &Task2Stk[TASK_STK_SIZE - 1], 2);
OSTaskCreate(Task3, (void *)0, &Task2Stk[TASK_STK_SIZE - 1], 3);
OSTaskDel(0);
}
void Task1 (void *pdata)
{
uint8 i;
pdata = pdata;
for (;;) {
for(i=0;i<16;i++)
{
IOSET = 0x00003c00;
IOCLR = i<<10;
OSTimeDlyHMSM(0, 0, 1, 0);
}
}
}
void Task2 (void *pdata)
{
pdata = pdata;
for (;;) {
IOSET =BEEP;
OSTimeDlyHMSM(0, 0, 0, 200);
IOCLR =BEEP;
OSTimeDlyHMSM(0, 0, 0, 200);
}
}
///以下为Task3:数码管显示数字0~9//
void HC595_SendDat(uint8 dat)
{
uint8 i;
IOCLR = SPI_CS;
for(i=0;i<8;i++)
{
IOCLR = SPI_CLK;
if((dat& 0x80)!=0) IOSET=SPI_DATA;
else IOCLR = SPI_DATA;
dat<<=1;
IOSET = SPI_CLK;
}
IOSET = SPI_CS;
}
void Task3 (void *pdata)
{
const uint8 DISP_TAB[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
uint8 i;
pdata = pdata;
for (;;)
{
for(i=0;i<10;i++)
{
HC595_SendDat(DISP_TAB[i]);
OSTimeDlyHMSM(0, 0, 1, 0);
}
}
}
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
作者:wangsu502 时间:2007-4-23 20:33:08
OSStart();开始的时候其他三个任务创建了吗?:)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|