⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 CortexM0上移植UCOS-II
💻 C
字号:
/**************************************************************************
 工程名称:LPC11xx_ucos_ii
 功    能: Cortex-M0上跑V2.86版的ucosii         						 
 编译环境: MDKV4.12                                                    
 时    钟: 外部12Mhz      										     
 日    期: 11/04/25                                                           
 作    者: 懒猫爱飞 
 修    改:null                                                 																					 
**************************************************************************/
#include "LPC11xx.h"                        /* LPC11xx definitions */
#include "gpio.h"
#include "config.h"
#include "device_init.h"
#include "ucos_ii.h"

//每一个任务要有一个堆栈
OS_STK TaskStartStk1[MaxStkSize];	      //定义任务堆栈大小
OS_STK TaskStartStk2[MaxStkSize];	      //定义任务堆栈大小

/************************************************************************/
/* 函数声明																*/
/************************************************************************/
void TaskLed(void *nouse);
void myTask(void *nouse);

/**************************************************************************
// 函数名称 :int main (void) 
// 函数功能 : 主函数
// 入口参数 : 无
// 出口参数 : 无
// 备    注 :无
**************************************************************************/
int main (void) 
{
    CPU_IntDis();					//禁止所有中断
	DeviceInit();					//初始化设备
    OSInit();						//初始化OS

	OSTaskCreate(TaskLed, (void *)0, &TaskStartStk1[MaxStkSize-1],1); 	   //创建Led显示任务

	OSTaskCreate(myTask, (void *)0, &TaskStartStk2[MaxStkSize-1],2); 
	OSStart();                                                             //启动ucos ii 永远不返回
}

/**************************************************************************
// 函数名称 :void TaskLed(void *nouse) 
// 函数功能 : led触发任务
// 入口参数 : void *nouse
// 出口参数 : 无
// 备    注 :无
**************************************************************************/
void TaskLed(void *nouse) 
{
    nouse=nouse;					 //防止编译器警告
    CPU_IntEn();                     //开时钟节拍中断
    while(1)
    {
		LED_TOG;                     //板子上与P1口的第9脚连接的灯触发闪烁
        OSTimeDlyHMSM(0,0,0,500);    //每500ms触发一次   
    }    
}
/**************************************************************************
// 函数名称 :void myTask(void *nouse)  
// 函数功能 : led触发任务
// 入口参数 : void *nouse
// 出口参数 : 无
// 备    注 :无
**************************************************************************/
void myTask(void *nouse) 
{
    nouse=nouse;		            //防止编译器警告
    CPU_IntEn();                    //开时钟节拍中断
    GPIOSetDir(1,8,1);              //设置P1.8为输出口
	GPIOSetValue(1,8,1);            //初始化P1.8为高电平
    while(1)
    {
		GPIO_TOGGLE(1,8);           //板子上与P1口的第8脚连接的灯触发闪烁
        OSTimeDlyHMSM(0,0,0,100);   //每100ms触发一次
    }    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -