📄 main.c
字号:
/****************************************Copyright (c)**************************************************
ARM Final-uCOS-II for LPC2131.
NH.UNIVERSITY.DQ-CE(communication engineering).ZHH.2005-2009.
All Rights Reserved.
******************************************************************************************************
*/
#include "config.h"
#include "stdlib.h"
#define TaskStkLengh 64 //Define the Task0 stack length堆栈长度.
#define LED0 (1<<2);
OS_STK TaskStk [TaskStkLengh]; //Define the Task0 stack堆栈.
OS_STK TaskLED [TaskStkLengh];
OS_STK TaskLCD [TaskStkLengh];
OS_STK TaskLCD3 [TaskStkLengh];
void Task0(void *pdata); //Task0 任务0.
void Task1LED(void *pdata);
void Task2LCD(void *pdata);
void Task3LCD(void *pdata);
//OS_EVENT *LedSem;
////////////////////////////////////////////////////////////////
int main (void)
{
OSInit ();
//LedSem = OSSemCreate(1);
OSTaskCreate (Task0,(void *)0, &TaskStk[TaskStkLengh - 1], 0); //0,1 Prio reserved.
OSStart ();
return 0;
}
////////////////////////////////////////////////////////////////
/*********************************************************************************************************
** Task0 任务0.
********************************************************************************************************/
const uint32 LED1=(1<<18);
void Task0(void *pdata)
{
pdata = pdata;
TargetInit ();//启动多任务环境.
//OSTaskCreate (Task1LED,(void *)0, &TaskLED [TaskStkLengh - 1], 2);
OSTaskCreate (Task2LCD,(void *)0, &TaskLCD [TaskStkLengh - 1], 3);
//OSTaskCreate (Task3LCD,(void *)0, &TaskLCD3 [TaskStkLengh - 1], 4);
PINSEL2 = PINSEL2 & (~0x08); // P1[25:16]连接GPIO.
IO1DIR=LED1;
while(1)
{
IO1SET=LED1;
OSTimeDly(100);//time=5ms*n=500ms.
IO1CLR=LED1;
OSTimeDly(100);
}
}
/**************TaskLED***********************************************/
const uint32 LED2=(1<<17);
void Task1LED(void *pdata)
{
pdata=pdata; //prevent warning.
TargetInit ();
PINSEL2 = PINSEL2 & (~0x08); // P1[25:16]连接GPIO.
IO1DIR=LED2;
while(1)
{
IO1SET=LED2;
OSTimeDly(100);//time=5ms*n=500ms.
IO1CLR=LED2;
OSTimeDly(100);
}
}
/**************TaskLCD***********************************************/
void Task2LCD(void *pdata)
{
uint16 i;
pdata=pdata;
PINSEL0=0x00;
PINSEL1=0x00;
TargetInit();
Lcd_Init();
while(1)
{
Write_Data(0x40,0x10,0x24,0x02); //设置写地址(若是图形显示方式则开始地址为图形显示地址)
Write_Data(0x00,0x00,0xb0,0x00); //设置自动写方式
for(i=0;i<2560;i++)
{
RW_Enable();
IODIR=0x7ff;
IOCLR=CD;
IOCLR=0xff;
IOSET=ICO1[i];
IOCLR=WR;
IOSET=WR;
}
Write_Data(0x00,0x00,0xb2,0x00); //自动写结束.
OSTimeDly(OS_TICKS_PER_SEC/1);
}
}
/* void Task3LCD(void *pdata)
{
uint16 i;
pdata=pdata;
PINSEL0=0x00;
PINSEL1=0x00;
TargetInit();
Lcd_Init();
while(1)
{
Write_Data(0x40,0x10,0x24,0x02); //设置写地址(若是图形显示方式则开始地址为图形显示地址)
Write_Data(0x00,0x00,0xb0,0x00); //设置自动写方式
for(i=0;i<2560;i++)
{
RW_Enable();
IODIR=0x7ff;
IOCLR=CD;
IOCLR=0xff;
IOSET=ICO2[i];
IOCLR=WR;
IOSET=WR;
}
Write_Data(0x00,0x00,0xb2,0x00); //自动写结束.
OSTimeDly(OS_TICKS_PER_SEC/1);
}
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -