📄 main.c
字号:
/************** (C) COPYRIGHT 2010 UP Team, Wuhan University of Technology***
* 文件名: main.c
* 作者 : UP Team, Wuhan University of Technology
* 日期 : 08/08/2010
* 描述 : 主程序源文件.
***************************************************************************
****************************************************************************
* 历史:
* 08/08/2010 : V1.0 初始版本
***************************************************************************/
/* Includes ---------------------------------------------------------------*/
#include "LPC11xx.h"
#include "clkconfig.h"
#include "gpio.h"
#include "coos.h"
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/*the size of task stack */
#define SIZE_TASK 100
/*set the priority of the task*/
#define PRIORITY_TASK0 1
#define PRIORITY_TASK1 2
#define PRIORITY_TASK2 3
#define PRIORITY_TASK3 4
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/
/*define arrays used for the stack of the tasks */
OS_STK stkTASK0[SIZE_TASK];
OS_STK stkTASK1[SIZE_TASK];
OS_STK stkTASK2[SIZE_TASK];
OS_STK stkTASK3[SIZE_TASK];
/**
* @函数名:task0
* @描述:任务task0,控制PIO2_0,闪烁LDE灯D4
* @参数: 无
* @返回值:无
*/
void task0(void *param)
{
for(;;) {
/* Turn On Led */
GPIOSetValue(PORT2, 0, 0);
CoTickDelay(20); /* Delay 100ms */
/* Turn Off Led */
GPIOSetValue(PORT2, 0, 1);
CoTickDelay(60); /* Delay 300ms */
}
}
/**
* @函数名:task1
* @描述:任务task1,控制PIO2_1,闪烁LDE灯D5
* @参数: 无
* @返回值:无
*/
void task1(void *param)
{
for(;;) {
CoTickDelay(20); /* Delay 200ms */
/* Turn On Led */
GPIOSetValue(PORT2, 1, 0);
CoTickDelay(20); /* Delay 100ms */
/* Turn Off Led */
GPIOSetValue(PORT2, 1, 1);
CoTickDelay(40); /* Delay 100ms */
}
}
/**
* @函数名:task2
* @描述:任务task2,控制PIO2_2,闪烁LDE灯D5
* @参数: 无
* @返回值:无
*/
void task2(void *param)
{
for(;;) {
CoTickDelay(40); /* Delay 200ms */
/* Turn On Led */
GPIOSetValue(PORT2,2,0);
CoTickDelay(20); /* Delay 100ms */
/* Turn Off Led */
GPIOSetValue(PORT2, 2, 1);
CoTickDelay(20); /* Delay 100ms */
}
}
/**
* @函数名:task3
* @描述:任务task3,控制PIO2_3,闪烁LDE灯D7
* @参数: 无
* @返回值:无
*/
void task3(void *param)
{
for(;;) {
CoTickDelay(60) ; /* Delay 300ms */
/* Turn On Led */
GPIOSetValue(PORT2,3,0);
CoTickDelay(20); /* Delay 100ms */
/* Turn Off Led */
GPIOSetValue(PORT2,3,1);
CoTickDelay(0); /* Delay 0ms */
}
}
/**
* @函数名:main
* @描述:主函数
* @参数: 无
* @返回值:无
*/
int main(void)
{
/* Set PIO2_0 to 3 as output. */
LPC_GPIO2->DIR |= (0x1<<0)|(0x1<<1)|(0x1<<2)|(0x1<<3);
CoInitOS(); /* init OS */
CLKOUT_Setup( CLKOUTCLK_SRC_MAIN_CLK );
/* Create Task 0 */
CoCreateTask( task0, (void *)0, PRIORITY_TASK0, &stkTASK0[SIZE_TASK-1],SIZE_TASK );
/* Create Task 1 */
CoCreateTask( task1, (void *)0, PRIORITY_TASK1, &stkTASK1[SIZE_TASK-1], SIZE_TASK );
/* Create Task 2 */
CoCreateTask( task2, (void *)0, PRIORITY_TASK2, &stkTASK2[SIZE_TASK-1], SIZE_TASK );
/* Create Task 3 */
CoCreateTask( task3,(void *)0,PRIORITY_TASK3,&stkTASK3[SIZE_TASK-1],SIZE_TASK );
CoStartOS();
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -