|
(原文件名:Image0134.JPG)
//---------------------------------------------------------------------------
#include "config.h"
#pragma argsused
#define OS_TICKS_PER_SEC 100
void __stdcall OSTickISR(unsigned int a,unsigned int b,unsigned long c,unsigned long d,unsigned long e);
#define EVT_LED_ON 0
#define EVT_LED_OFF 1
#define TASK1ID 0
#define TASK2ID 1
uint8 task1(uint8 EventValue)
{
switch(EventValue)
{
case EVT_TASK_ENTRY:
EVT_Post(EVT_LED_ON);
break;
case EVT_LED_ON:
printf(" --------TASK1:LED ON --------\r\n");
EVT_DelayPost(EVT_LED_OFF,OS_TICKS_PER_SEC/2);
break;
case EVT_LED_OFF:
printf(" --------TASK1:LED OFF--------\r\n");
EVT_DelayPost(EVT_LED_ON,OS_TICKS_PER_SEC/2);
break;
}
return 1;
}
uint8 task2(uint8 EventValue)
{
static uint8 step=0;
if(step==0)
{
step=1;
printf(" --------TASK2:LED ON --------\r\n");
TSK_Delay(OS_TICKS_PER_SEC/3);
}
else
{
step=0;
printf(" --------TASK2:LED OFF--------\r\n");
TSK_Delay(OS_TICKS_PER_SEC/3);
}
return 1;
}
int main(int argc, char* argv[])
{
InitializeCriticalSection(&CS);
TSK_InitWithEntryEvent(task1,TASK1ID);
TSK_InitWithEntryEvent(task2,TASK2ID);
timeSetEvent(1000/OS_TICKS_PER_SEC, 0, OSTickISR, 0, TIME_PERIODIC); //模拟周期中断
while(1)
{
while(EVT_Scheduler());
Sleep(1);
}
// return 0;
}
void __stdcall OSTickISR(unsigned int a,unsigned int b,unsigned long c,unsigned long d,unsigned long e)
{
TMR_TicksHander();
}
点击此处下载 ourdev_519376.rar(文件大小:652K) (原文件名:TEvent.rar)
本贴被 ATmega32 编辑过,最后修改时间:2008-11-28,11:11:36. |
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|