📄 atmega.c
字号:
#include "includes.h"
OS_STK Task1Stk[OS_USER_TASK_STK_SIZE]={0};
OS_STK Task2Stk[OS_USER_TASK_STK_SIZE]={0};
OS_STK Task3Stk[OS_USER_TASK_STK_SIZE]={0};
OS_EVENT *MailBox=(OS_EVENT *)0;
unsigned char MailBoxMsg[3];
void Task1(void *pdata)
{
unsigned char dispdata[3]={1,2,3};
unsigned char *PointerMailBox=(void *)0;
unsigned char keycode=STATUS_LOOP7;
pdata=pdata;
TargetInit();//
while(1)
{
//obtain message
PointerMailBox=(void *)0;
PointerMailBox=(unsigned char *)OSMboxAccept(MailBox);
if(PointerMailBox != 0)
{
keycode=PointerMailBox[0];//取得编码
}
if(keycode==STATUS_LOOP)
{
LedRefresh(dispdata[1],1);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(dispdata[1],2);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(dispdata[1],3);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(dispdata[1],4);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(dispdata[1],5);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(dispdata[1],6);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(dispdata[1],7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(dispdata[1],8);
OSTimeDly(OS_TICKS_PER_SEC/10);
dispdata[1]++;
//dispdata[1]%=0x0f;
}
else
if(keycode==STATUS_LOOP1)
{
LedRefresh(dispdata[1],1);
OSTimeDly(OS_TICKS_PER_SEC/2);
dispdata[1]++;
//dispdata[1]%=0x0f;
}
else
if(keycode==STATUS_LOOP2)
{
LedRefresh(dispdata[1],2);
OSTimeDly(OS_TICKS_PER_SEC/5);
dispdata[1]++;
//dispdata[1]%=0x0f;
}
else
if(keycode==STATUS_LOOP3)
{
LedRefresh(dispdata[1],3);
OSTimeDly(OS_TICKS_PER_SEC/10);
dispdata[1]++;
//dispdata[1]%=0x0f;
}
else
if(keycode==STATUS_LOOP4)
{
LedRefresh(dispdata[1],4);
OSTimeDly(OS_TICKS_PER_SEC/20);
dispdata[1]++;
//dispdata[1]%=0x0f;
}
else
if(keycode==STATUS_LOOP5)
{
LedRefresh(dispdata[1],5);
OSTimeDly(OS_TICKS_PER_SEC/40);
dispdata[1]++;
//dispdata[1]%=0x0f;
}
else
if(keycode==STATUS_LOOP6)
{
LedRefresh(dispdata[1],6);
OSTimeDly(OS_TICKS_PER_SEC/50);
dispdata[1]++;
//dispdata[1]%=0x0f;
}
else
if(keycode==STATUS_LOOP7)
{
LedRefresh(0x8a,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0x8b,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0x8c,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0x8d,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0x8e,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0x8f,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0x90,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0x91,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0xa8,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0x92,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0x93,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0x94,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0x95,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0x96,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0x97,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0x98,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0x99,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0x9a,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0x9b,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0x9c,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0x9d,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0xa8,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0x9e,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0x9e,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0x9e,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0x9f,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0xa0,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0xa1,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0xa2,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0xa3,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0xa4,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0xa5,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0xa6,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0xa7,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
LedRefresh(0xa8,7);
OSTimeDly(OS_TICKS_PER_SEC/10);
}
else
if(keycode==STATUS_LOOP8)
{
LedRefresh(dispdata[1],8);
OSTimeDly(OS_TICKS_PER_SEC/10);
dispdata[1]++;
//dispdata[1]%=0x0f;
}
else
{
keycode=STATUS_LOOP;
}
}
}
void Task2(void *pdata)
{
pdata=pdata;
while(1)
{
OSTimeDly(OS_TICKS_PER_SEC*2);//delay 1s
SpeakerOpen();
OSTimeDly(OS_TICKS_PER_SEC/50);
SpeakerClose();
}
}
/*************************************************************************
*************************************************************************/
int main(void)
{
OSInit();/*os initialization*/
OSTaskCreate(Task1,0,&Task1Stk[OS_USER_TASK_STK_SIZE-1],0);
OSTaskCreate(Task2,0,&Task2Stk[OS_USER_TASK_STK_SIZE-1],1);
// OSTaskCreate(Task3,0,&Task3Stk[OS_USER_TASK_STK_SIZE-1],2);
MailBox=OSMboxCreate((void *)0);
OSStart();/*os start*/
return(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -