⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 处理器采用的是LPC2378
💻 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 + -