?? main.c.bak
字號:
/****************************************Copyright (c)**************************************************
** Guangzou ZLG-MCU Development Co.,LTD.
** graduate school
** http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name: main.c
** Last modified Date: 2004-09-16
** Last Version: 1.0
** Descriptions: The main() function example template
**
**------------------------------------------------------------------------------------------------------
** Created by: Chenmingji
** Created date: 2004-09-16
** Version: 1.0
** Descriptions: The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
********************************************************************************************************/
#include "config.h"
#include "stdlib.h"
#define TaskStkLengh 64 //Define the Task0 stack length 定義用戶任務0的堆棧長度
OS_STK TaskStk [TaskStkLengh]; //Define the Task0 stack 定義用戶任務0的堆棧
void Task0(void *pdata); //Task0 任務0
int main (void)
{
IO2DIR = 1<<29;
IO2CLR = 1<<29;
OSInit ();
OSTaskCreate (Task0,(void *)0, &TaskStk[TaskStkLengh - 1], 2);
OSStart ();
return 0;
}
/*********************************************************************************************************
** Task0 任務0
********************************************************************************************************/
#define TaskUDiskFSStkLengh 100
OS_STK TaskStk_UDiskFS[TaskUDiskFSStkLengh];
void Task_UDiskFS_DEMO(void *pdata); // ZLG/FS操作U盤任務函數
void Task0 (void *pdata)
{
pdata = pdata;
/*===================================================================*/
OSTaskCreate (Task_UDiskFS_DEMO,(void *)0,
&TaskStk_UDiskFS[TaskUDiskFSStkLengh-1],7);
TargetInit ();
/* 創建Uart0接收任務 */
while (1)
{
OSTimeDly(10);
}
}
/*********************************************************************************************************
** USB 大容量演示任務
********************************************************************************************************/
/*********************************************************************************************************
** ZLG/FS操作U盤演示任務
********************************************************************************************************/
/*=======================================================================================================*/
#define IniLED_DiskRW() PINSEL1 &= ~(3<<6);IO0DIR |=1<<19;IO0SET=1<<19
#define SetLED_DiskRW() IO0SET =1<<19
#define ClrLED_DiskRW() IO0CLR =1<<19
//#define IniLED_DiskBe() IO2DIR |=1<<29;IO2SET=1<<29
//#define SetLED_DiskBe() IO2SET =1<<29
//#define ClrLED_DiskBe() IO2CLR =1<<29
#define IniBUZZ() PINSEL1 &= ~(3<<10);IO0DIR|=1<<21;IO0CLR=1<<21
#define SetBUZZ() IO0SET =1<<21
#define ClrBUZZ() IO0CLR =1<<21
char FNAME[] = "A:\\讀我.TXT";
char DIR[]="A:\\USB_HOST";
char const WritFileData[]=
"\r\n******************Copyright (c) 周立功單片機發展有限公司***********************\r\n\
\r\n\
ZLG/FS是廣州周立功單片機發展有限公司開發的面向嵌入式系統開發的小型文件系統,\r\n\
是ZLG系列中間件的重要成員之一。它是與FAT12、FAT16、FAT32高度兼容的文件系統,可以\r\n\
直接與個人電腦交換文件。它是可移植的、可固化的文件系統,可以用于前后臺系統,也可\r\n\
用于多任務環境。目前ZLG/FS的最新版本為1.0。\r\n\
HostMassLib是基于ZLG USB HOST STACK及ZLG Mass Storage Class驅動封裝的ISP116x\r\n\
讀寫U盤驅動庫。該庫針對LPC213x系統微處理器配置編譯生成,使用RAM資源少于4K,使用\r\n\
CODE資源少于12.4K,可同時支持兩個U盤。\r\n\
\r\n*********************************ARM開發部門************************************\r\n";
MassDriver mass_driver;
void Task_UDiskFS_DEMO(void *pdata) // ZLG/FS操作U盤任務函數
{
HANDLE FHandle;
pdata = pdata;
mass_driver.DeID = 0;
mass_driver.LunID = 0;
//IniLED_DiskBe();
IniLED_DiskRW();
IniBUZZ();
while (1)
{
if(NULL != find_mass_device(mass_driver.DeID)) // 等待U盤插入
{ /* 設備插入操作 */
// ClrLED_DiskBe(); // 點亮LED_DiskBe指示設備連接設備有效
ClrLED_DiskRW(); // 點亮LED_DiskWR指示開始對U盤操作
OSAddFileDriver(GetUSBCommand(), &mass_driver); // 安裝文件系統驅動
//MediumPtr = mass_driver.MediumPtr;
//if(RETURN_OK==OSAddFileDriver(USBCammand,&mass_driver))
if(mass_driver.MediumPtr)
{
FHandle = OSFileOpen(FNAME, "RW"); // 打開或創建文件
if(Not_Open_FILE!=FHandle) // 打開文件成功
{
/* 文件操作 */
OSFileSeek(FHandle,0, SEEK_END); // 將指針移到文件末尾
OSFileWrite((uint8 *)WritFileData,
sizeof(WritFileData),FHandle); // 寫數據入文件
OSFileClose(FHandle); // 關閉文件
OSMakeDir(DIR); // 創建目錄
OSAllCacheWriteBack(); // 將緩沖區數據寫回設備
SetBUZZ(); // 蜂鳴器蜂鳴提示文件操作完成
OSTimeDly(100);
ClrBUZZ();
}
else
{ SetBUZZ(); // 蜂鳴器長鳴(直到U盤拔出)指示打開文件失敗
}
/* 操作完成 */
SetLED_DiskRW(); // 熄滅LED_DiskWR指示開始對U盤操作完成,這里可以拔出U盤
}
OSRemoveFileDriver(GetUSBCommand(), &mass_driver); // 刪除驅動
while(NULL != find_mass_device(mass_driver.DeID))// 等待U盤拔出
{
OSTimeDly(10);
}
/* 設備拔出處理 */
ClrBUZZ(); // 關蜂鳴器
// SetLED_DiskBe(); // 熄滅LED_DiskBe指示設備已拔出
}
OSTimeDly(10);
}
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -