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