📄 main.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 + -