?? main.c
字號:
#include "config.h"
#define rs (1<<8)
#define rw (1<<9)
#define en (1<<10)
#define busy (1<<7)
#define key (1<<17)
uint32 temp;
#define TASK_STK_SIZE 64
OS_STK TaskStartStk[TASK_STK_SIZE];
OS_STK Task0Stk[TASK_STK_SIZE];
void TaskStart(void *data);
uint8 txt[]={"helloworld"};
void Task0(void *data);
uint8 txt1[]={"123"};
/****************************************************************************
* 名稱:ChkBusy()
* 功能:檢查總線是否忙
****************************************************************************/
void ChkBusy()
{
PINSEL0=0xffc00000;
IODIR=0x700;
while(1)
{
IOCLR=rs;
IOSET=rw;
IOSET=en;
if(!(IOPIN & busy))break;
IOCLR=en;
}
IODIR=0x7ff;
}
/****************************************************************************
* 名稱:WrOp()
* 功能:寫函數
****************************************************************************/
void WrOp(uint8 dat)
{
ChkBusy();
IOCLR=rs; //全部清零
IOCLR=rw;
IOCLR=0xff; //先清零
IOSET=dat; //再送數
IOSET=en;
IOCLR=en;
}
/****************************************************************************
* 名稱:WrDat()
* 功能:寫數據函數
****************************************************************************/
void WrDat(uint8 dat) //讀數據
{
ChkBusy();
IOSET=rs;
IOCLR=rw;
IOCLR=0xff; //先清零
IOSET=dat; //再送數
IOSET=en;
IOCLR=en;
}
/****************************************************************************
* 名稱:DisText()
* 功能:顯示文本函數
****************************************************************************/
void DisplayText(uint8 addr,uint8 *p)
{
WrOp(addr);
while(*p !='\0')WrDat(*(p++));
}
/****************************************************************************
* 名稱:main()
* 功能:顯示文本
****************************************************************************/
int main (void)
{
OSInit();
OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[TASK_STK_SIZE - 1], 0);
OSTaskCreate(Task0, (void *)0, &Task0Stk[TASK_STK_SIZE - 1], 1);
OSStart();
return 0;
}
/****************************************************************************
* 名稱:TaskStart()
* 功能:任務
****************************************************************************/
void TaskStart(void *pdata)
{ pdata=pdata;
TargetInit();
WrOp(0x0c);
//OSTaskCreate(Task0, (void *)0, &Task0Stk[TASK_STK_SIZE - 1], 1);
IODIR=0x7ff; //設置為輸出
IOCLR=0x7ff;
while(1)
{//WrDat(temp);
if(temp>0)
{DisplayText(0x01,txt);
OSTimeDly(OS_TICKS_PER_SEC/50);
}
else DisplayText(0x01,txt1);
OSTimeDly(OS_TICKS_PER_SEC/50);
//OSTaskSuspend(OS_PRIO_SELF);
}
//while(1);
}
void Task0(void *pdata)
{
pdata=pdata;
//temp=0;
for(;;)
{
while((IOPIN&key)==0)
{temp=~temp;
OSTimeDly(10);
//OSTaskResume(0);
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -