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

📄 main.c

📁 M20xx-FNU20编程工程模板
💻 C
字号:
/****************************************Copyright (c) *************************************
**                         Guangzhou ZHIYUAN electronics Co.,LTD.                                              
**                               http://www.embedtools.com
**
**------------ File Info -------------------------------------------------------------------
**  File name          :main.c
**  Last modified Date :
**  Last Version       :V1.0
**  Descriptions       :用户主程序
**
**------------------------------------------------------------------------------------------
** Created by:			Lijianming
** Created date:		2007-05-21
** Version:				V1.20
** Descriptions:		M2020-FNU20 的工程模板(带有LED、BEEP演示)
**
**------------------------------------------------------------------------------------------
** Modified by  :
** Modified date:
** Version      :
** Descriptions :
**
*********************************************************************************************/
#include "main.h"

#define TASK0_PRIO          17       		// 任务的优先级
#define TASK0_ID            TASK0_PRIO      // 任务的ID
#define TASK0_STACK_SIZE    1024    		// 定义用户堆栈长度   

#define TASK1_PRIO          18       		// 任务的优先级
#define TASK1_ID            TASK1_PRIO      // 任务的ID
#define TASK1_STACK_SIZE    512     		// 定义用户堆栈长度
   
#define TASK2_PRIO          19       		// 任务的优先级
#define TASK2_ID            TASK2_PRIO      // 任务的ID
#define TASK2_STACK_SIZE    512     		// 定义用户堆栈长度

#define TASK3_PRIO          20       		// 任务的优先级
#define TASK3_ID            TASK3_PRIO      // 任务的ID
#define TASK3_STACK_SIZE    512    		    // 定义用户堆栈长度

#define TASK4_PRIO          21       		// 任务的优先级
#define TASK4_ID            TASK4_PRIO   	// 任务的ID
#define TASK4_STACK_SIZE    512    	 		// 定义用户堆栈长度

#define TASK5_PRIO          22       		// 任务的优先级
#define TASK5_ID            TASK5_PRIO 		// 任务的ID
#define TASK5_STACK_SIZE    512     		// 定义用户堆栈长度

OS_STK  TASK0_STACK[TASK0_STACK_SIZE];
OS_STK  TASK1_STACK[TASK1_STACK_SIZE];
OS_STK  TASK2_STACK[TASK2_STACK_SIZE];
OS_STK  TASK3_STACK[TASK3_STACK_SIZE];
OS_STK  TASK4_STACK[TASK4_STACK_SIZE];
OS_STK  TASK5_STACK[TASK5_STACK_SIZE];

void TASK0(void *pdata);
void TASK1(void *pdata);
void TASK2(void *pdata);
void TASK3(void *pdata);
void TASK4(void *pdata);
void TASK5(void *pdata);

/******************************************************************************************/

uint8  MCU_IP[4]      = {192,168, 0 ,178};      //设置MCU的IP地址等信息
uint8  MCU_Mark[4]    = {255,255,255, 0 };
uint8  MCU_GateWay[4] = {192,168, 0 , 1 };   
uint8  MCU_MAC[6];  							//MAC地址
uint16 MCU_Port       = 8000;

uint8  PC_IP[4]       = {192,168, 0 ,100};      //设置PC机的IP地址等信息
uint16 PC_Port        = 2000;

uint8	CFSel =0;								//CF卡主从机选择

/******************************************************************************************
** Function name: main
** Descriptions : 主函数
** Input        : 无
** Output       : 无 
*******************************************************************************************/
int main (void)
{
    #if OS_CRITICAL_METHOD == 3				      	//Allocate storage for CPU status register
    OS_CPU_SR  cpu_sr;
	#endif
	
/*---------------------- 系统初始化代码 ------------------------------------------------*/
	TargetInit ();      					     	//系统初始化,版本号验证
											     	//验证不通过函数不会返回!!!
    DevDriveIni();								 	//驱动库初始化

#if 1
	GetIpSet(MCU_IP);								//读取出厂IP
	GetMarkSet(MCU_Mark);
	GetGateWaySet(MCU_GateWay);
	MCU_Port = GetPortSet();
    ZlgipInitial(MCU_IP, MCU_GateWay, MCU_Mark);	//设置系统IP参数
	GetMac(MCU_MAC);								//读取MAC地址(该函数必须在ZlgipInitial后调用)
//	getlocalip(MCU_IP,0);							//读取本地IP
#endif

#if 0
    File_init();
    USB_Host_init();
    MassDriverIni();
#endif

#if 0
//	OSAddFileDriver(GetFFSCommand(), Get16MDriverInfo());	// 安装16M  (512byte扇区)电子盘文件系统驱动
	OSAddFileDriver(GetLFFSCommand(), Get256MDriverInfo());	// 安装256M ( 2Kbyte扇区)电子盘文件系统驱动
#endif

/*----------------------------------------------------------------------------------------*/

    gpio_set(BUZZER);                            	//鸣叫BEEP
    OSTimeDly(OS_TICKS_PER_SEC/10);             	//注意PWM输出引脚与蜂鸣器是同一引脚
    gpio_clr(BUZZER); 
    OSTimeDly(OS_TICKS_PER_SEC/10);
    gpio_set(BUZZER);
    OSTimeDly(OS_TICKS_PER_SEC/10);
    gpio_clr(BUZZER);  

/*----------------------------------------------------------------------------------------*/

    OSTaskCreateExt(TASK0,
                    (void *)0,
                    &TASK0_STACK[TASK0_STACK_SIZE-1],
                    TASK0_PRIO,
                    TASK0_ID,
                    &TASK0_STACK[0],
                    TASK0_STACK_SIZE,
                    (void *)0,
                    OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);      
                    
    OSTaskCreateExt(TASK1,
                    (void *)0,
                    &TASK1_STACK[TASK1_STACK_SIZE-1],
                    TASK1_PRIO,
                    TASK1_ID,
                    &TASK1_STACK[0],
                    TASK1_STACK_SIZE,
                    (void *)0,
                    OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);  
                    
    OSTaskCreateExt(TASK2,
                    (void *)0,
                    &TASK2_STACK[TASK2_STACK_SIZE-1],
                    TASK2_PRIO,
                    TASK2_ID,
                    &TASK2_STACK[0],
                    TASK2_STACK_SIZE,
                    (void *)0,
                    OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);  
                    
    OSTaskCreateExt(TASK3,
                    (void *)0,
                    &TASK3_STACK[TASK3_STACK_SIZE-1],
                    TASK3_PRIO,
                    TASK3_ID,
                    &TASK3_STACK[0],
                    TASK3_STACK_SIZE,
                    (void *)0,
                    OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);  
                    
    OSTaskCreateExt(TASK4,
                    (void *)0,
                    &TASK4_STACK[TASK4_STACK_SIZE-1],
                    TASK4_PRIO,
                    TASK4_ID,
                    &TASK4_STACK[0],
                    TASK4_STACK_SIZE,
                    (void *)0,
                    OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); 
                    
    OSTaskCreateExt(TASK5,
                    (void *)0,
                    &TASK5_STACK[TASK5_STACK_SIZE-1],
                    TASK5_PRIO,
                    TASK5_ID,
                    &TASK5_STACK[0],
                    TASK5_STACK_SIZE,
                    (void *)0,
                    OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);        
	while (1)
    {
		OSTimeDly(OS_TICKS_PER_SEC); 
    }
}

/*******************************************************************************************
** Function name: TASK0
** Descriptions : 
** Input        : 无
** Output       : 无 
*******************************************************************************************/
void TASK0(void *pdata)  
{
	pdata = pdata;
	
    while (1)
    {
        OSTimeDly(OS_TICKS_PER_SEC);
    }   
}

/*******************************************************************************************
** Function name: TASK1
** Descriptions : 
** Input        : 无
** Output       : 无 
*******************************************************************************************/
void TASK1(void *pdata)  
{
	pdata = pdata;
	
    while (1)
    {
        OSTimeDly(OS_TICKS_PER_SEC);
    }   
}

/*******************************************************************************************
** Function name: TASK2
** Descriptions : 
** Input        : 无
** Output       : 无 
*******************************************************************************************/
void TASK2(void *pdata)  
{
	pdata = pdata;
	
    while (1)
    {
        OSTimeDly(OS_TICKS_PER_SEC);
    }   
}

/*******************************************************************************************
** Function name: TASK3
** Descriptions : 
** Input        : 无
** Output       : 无 
*******************************************************************************************/
void TASK3(void *pdata)  
{
	pdata = pdata;
	
    while (1)
    {
        OSTimeDly(OS_TICKS_PER_SEC);
    }   
}

/*******************************************************************************************
** Function name: TASK4
** Descriptions : 
** Input        : 无
** Output       : 无 
*******************************************************************************************/
void TASK4(void *pdata)  
{
	pdata = pdata;
	
    while (1)
    {
        OSTimeDly(OS_TICKS_PER_SEC);
    }   
}

/*******************************************************************************************
** Function name: TASK5
** Descriptions : 系统正常运行指示灯,如果系统正常运行,LDE会正常闪烁。
** Input        : 无
** Output       : 无 
*******************************************************************************************/
void TASK5(void *pdata)  
{
	pdata = pdata;
	
    while (1)
    {
       gpio_clr(LED9); 
       OSTimeDly(OS_TICKS_PER_SEC/10);
       gpio_set(LED9);
       OSTimeDly(OS_TICKS_PER_SEC/10);
    }
}
/*******************************************************************************************
**                            End Of File
*******************************************************************************************/

⌨️ 快捷键说明

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