📄 main.c
字号:
/****************************************Copyright (c)**************************************************
** 广州周立功单片机发展有限公司
** 研 究 所
** 产品一部
**
** http://www.zlgmcu.com
**
** 文 件 名: main.c
** 最后修改日期: 2004年11月15日
** 描 述: 用户应用程序
** 版 本: V5.0
**********************************************************************************************************/
/*********************************************************************************************************
** KAIXIN Co.,Ltd.
**
** 文件名: Main.c
** 修改日期: 2007-8-8
** 版本: V1.0
** 描述: 主函数
**
**------------------------------------------------------------------------------------------------------
** 创建: 安 宁
** 创建日期: 2007-8-8
** 版本: V1.0
** 描述: 原始版本
********************************************************************************************************/
#include "config.h"
#include "D13Config.h"
#include "D13CI.h"
#include "Descriptor.h"
#include "Chap_9.h"
#include "D13Driver.h"
#include "NFLASH.h"
#include "SCSI.h"
extern INT8U addrd[3];
extern INT32U offset,offsetr,offsetd,times1,times2;
extern unsigned int WriteResidueVal,WriteResidueValcopy;
extern unsigned char BulkPhase;
//extern void Usb_Handler(void);
void DelayNS (uint32 dly)
{
uint32 i;
for ( ; dly>0; dly--)
for (i=0; i<5000; i++);
}
void BeepFunc (void)
{
int i ;
PINSEL9 |= BEEP; // 设置管脚连接GPIO
FIO4DIR |= BEEP; // 设置BEEP控制口为输出
for(i=0;i<5;i++)//while(1)
{
FIO4SET = BEEP; // BEEP停止蜂鸣
DelayNS(100);
FIO4CLR = BEEP; // BEEP 蜂鸣
DelayNS(100);
}
}
/*int main()
{
uint16 i;
//BeepFunc ();
USB_nRST(); //测试用
USBWR(0x03,0xF6);
WRITE_16BIT_REG(0x01,0xB0,0xAA37); //写暂存寄存器 测试
//WRITE_16BIT_REG(0x01,0xB2,0x0011); //写暂存寄存器 测试
//i = READ_16BIT_REG(0x01,0xB3);
i = READ_16BIT_REG(0x01,0xB5);
if(i == 0x6123)
//if(i == 0x0011)
{
FIO4MASK = 0x00000000; //测试用
BeepFunc ();
return 1; //测试用
}
return 0;
}*/
int main(void)
{
//uint16 i,j;
/*addrd[0] = 0;
addrd[1] = 0;
addrd[2] = 0;
//将前16快擦除
for(i = 0;i < 2048;i++)
{
FLSEBK(addrd[2],addrd[1]);
addrd[1] +=32;
if(addrd[1] ==0)
{
addrd[2]++;
}
}
addrd[0] = 0;
addrd[1] = 0;
addrd[2] = 0;*/
PINSEL10=0x00000000;
//while(1){
//BeepFunc (); //测试用
//}
//DelayNS(500); //测试用
//BeepFunc (); //测试用
//DelayNS(500); //测试用
//BeepFunc (); //测试用
if (Init_D13()==0) //初始化ISP1161A1
{
//FIO4MASK = 0x00000000; //测试用
//DelayNS(2000);
//BeepFunc ();
//return;
//EX0 = 1; //开外部中断0
//PX0 = 0; //设置外部中断0中断优先级
//EA = 1; //开80C51总中断
PCONP |= (1<<22); //使能Timer2
/*设置定时器2*/
T2TC = 0; //设置定时计数器
T2PR = 99; //设置分频系数
T2CCR |= (1<<1)|(1<<2); //设置为CAP2.0下降沿捕获,并且产生中断
//T2CCR |= (1|(1<<2));
T2TCR = 0x01; //使能定时器2
IRQEnable();
/*设置时钟中断*/
VICIntSelect = 0x00; //设置时钟Timer2中断为IRQ
VICVectPri26 = 0x01; //设置优先级
//VICVectAddr26 = (INT32U)Usb_Handler; //设置中断服务函数
VICVectAddr26 = (INT32U)Usb_Exception;
T2IR = 0x10; //清除Timer2 CAP2.0中断
VICIntEnable = 1<<26; //开中断
while(1)
{
usbserve(); //处理USB事件
if(bEPPflags.configuration == 1)
{
// BeepFunc (); //在这里添加端点操作代码
/*if(bEPPflags.flashwrstart == 1)
{
FLSWR(offset);
WriteResidueVal=WriteResidueVal-offset;
offset = 0;
bEPPflags.flashwrstart = 0;
if(WriteResidueVal == 0)
{
offset = 0;
BulkPhase = CommandPhase;
}
}*/
}
}
return 1;
}
return 0; //如果初始化不成功,返回
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -