|
无法进行任务调度 请高手指点,实在找不到原因了.
task1与task2不能自动切换
#define Test1_GLOBALS
#include "includes.h"
//******************************************************************************
// Constants
#define TaskStartPrio 10 // Task-Prioritaeten
//*****************************************************************************
// Variablen
OS_STK Task1Stack[OS_TASK_DEF_STK_SIZE]; // startup task stack
OS_STK Task2Stack[OS_TASK_DEF_STK_SIZE];
//*****************************************************************************
// Prototypes
void Task1(void *data);
void uart0_init(void);
void Task2(void *data);
//*****************************************************************************
// Start
void main(void){
OSInit(); // OS init
OSTaskCreate(Task1,
(void *)(int)'a',
&Task1Stack[OS_TASK_DEF_STK_SIZE-1],
TaskStartPrio);
OSTaskCreate(Task2,
(void *)(int)'b',
&Task2Stack[OS_TASK_DEF_STK_SIZE-1],
TaskStartPrio+1);
// init und start tick
uart0_init();
TC2_Init();
DDRG |= 0x18; PORTG &=~(1<<PG3); PORTG &=~(1<<PG4);
OSStart(); // start multitasking
}
//*****************************************************************************
void Task1(void *data)
{
data=data;
// char c = (int)data;
// Timer/Counter#2 Overflow and Comp init
for (;;){
// putchar(c);
//while(!(UCSR0A&0x20));
UDR0 = 'a';
// PORTA = ~PORTA;
// DDRA = 0xff;
OSTimeDly (5);
}
}
void Task2(void *data)
{
data=data;
// char c = (int)data;
for (;;){
// putchar(c);
//while(!(UCSR0A&0x20));
UDR0 = 'b';
// PORTA = ~PORTA;
// DDRA = 0xff;
OSTimeDly (5);
}
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|