?? main.c
字號(hào):
/****************************************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 // 任務(wù)的優(yōu)先級(jí)
#define TASK0_ID TASK0_PRIO // 任務(wù)的ID
#define TASK0_STACK_SIZE 1024 // 定義用戶堆棧長度
#define TASK1_PRIO 18 // 任務(wù)的優(yōu)先級(jí)
#define TASK1_ID TASK1_PRIO // 任務(wù)的ID
#define TASK1_STACK_SIZE 512 // 定義用戶堆棧長度
#define TASK2_PRIO 19 // 任務(wù)的優(yōu)先級(jí)
#define TASK2_ID TASK2_PRIO // 任務(wù)的ID
#define TASK2_STACK_SIZE 512 // 定義用戶堆棧長度
#define TASK3_PRIO 20 // 任務(wù)的優(yōu)先級(jí)
#define TASK3_ID TASK3_PRIO // 任務(wù)的ID
#define TASK3_STACK_SIZE 512 // 定義用戶堆棧長度
#define TASK4_PRIO 21 // 任務(wù)的優(yōu)先級(jí)
#define TASK4_ID TASK4_PRIO // 任務(wù)的ID
#define TASK4_STACK_SIZE 512 // 定義用戶堆棧長度
#define TASK5_PRIO 22 // 任務(wù)的優(yōu)先級(jí)
#define TASK5_ID TASK5_PRIO // 任務(wù)的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}; //設(shè)置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}; //設(shè)置PC機(jī)的IP地址等信息
uint16 PC_Port = 2000;
uint8 CFSel =0; //CF卡主從機(jī)選擇
/******************************************************************************************
** Function name: main
** Descriptions : 主函數(shù)
** Input : 無
** Output : 無
*******************************************************************************************/
int main (void)
{
#if OS_CRITICAL_METHOD == 3 //Allocate storage for CPU status register
OS_CPU_SR cpu_sr;
#endif
/*---------------------- 系統(tǒng)初始化代碼 ------------------------------------------------*/
TargetInit (); //系統(tǒng)初始化,版本號(hào)驗(yàn)證
//驗(yàn)證不通過函數(shù)不會(huì)返回!!!
DevDriveIni(); //驅(qū)動(dòng)庫初始化
#if 1
GetIpSet(MCU_IP); //讀取出廠IP
GetMarkSet(MCU_Mark);
GetGateWaySet(MCU_GateWay);
MCU_Port = GetPortSet();
ZlgipInitial(MCU_IP, MCU_GateWay, MCU_Mark); //設(shè)置系統(tǒng)IP參數(shù)
GetMac(MCU_MAC); //讀取MAC地址(該函數(shù)必須在ZlgipInitial后調(diào)用)
// getlocalip(MCU_IP,0); //讀取本地IP
#endif
#if 0
File_init();
USB_Host_init();
MassDriverIni();
#endif
#if 0
// OSAddFileDriver(GetFFSCommand(), Get16MDriverInfo()); // 安裝16M (512byte扇區(qū))電子盤文件系統(tǒng)驅(qū)動(dòng)
OSAddFileDriver(GetLFFSCommand(), Get256MDriverInfo()); // 安裝256M ( 2Kbyte扇區(qū))電子盤文件系統(tǒng)驅(qū)動(dòng)
#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 : 系統(tǒng)正常運(yùn)行指示燈,如果系統(tǒng)正常運(yùn)行,LDE會(huì)正常閃爍。
** 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
*******************************************************************************************/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -