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

📄 main.c

📁 硬件: PC机 1台 SeaARM2410教学实验开发平台 1台 软件: Windows 98/2000/XP操作系统 ADS 1.2集成开发环境 SC32400手册
💻 C
字号:
/********************************************************************************************************
** File Name: main.c
** Description: MagicARM2410实验箱的基础实验---外部中断实验。
**              使用外部中断EINT4进行LED1的控制,每当有一次中断,就把LED1控制口输出信号取反一次。
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#include  "config.h"

#define   BEEP				(1<<5)	    /* GPE5,高电平时蜂鸣 */
#define   BEEP_MASK			(~BEEP)
/*********************************************************************************************************
** Function name: DelayNS
** Descriptions: 长软件延时。
**              延时时间与系统时钟有关。
** Input: dly	延时参数,值越大,延时越久
** Output: 无
********************************************************************************************************/
void  DelayNS(uint32  dly)
{  
	uint32  i;

   	for(; dly>0; dly--) 
       for(i=0; i<50000; i++);
}


 
/*********************************************************************************************************
** Function name: SpiInit()
** Descriptions:     
** Input: 无
** Output: 无
********************************************************************************************************/
void  SpiInit(void)
{	
	rSPPRE0 = 0xF9;   //f(SPI)=100KHZ
	rSPCON0 = 0x18;   //主发送,CPOL=0,CPHA=0

}



/*********************************************************************************************************
** Function name: EINT_init
** Descriptions: 外部中断初始化。设置GPF4引脚为外部中断EINT4功能,下降沿触发模式,并使能中断允许。     
** Input: 无
** Output: 无
********************************************************************************************************/
void  MSendData(uint8 data)
{	
	rGPGDAT = rGPGDAT&(0<<2);
	while((rSPSTA0&0x01)==1)
		rSPTDAT0 = data;
	DelayNS(20);
	rGPGDAT = rGPGDAT|(1<<2);
	//return(rSPTDAT0);
}

uint8 const DISP_TAB[16]={0x5a,0xa5,0x5a,0xa5,0x5a,0xa5,0x5a,0xa5,0x5a,0xa5,
						  0x55,0xaa,0x55,0xaa,0x55,0xaa};
						  

/*********************************************************************************************************
** Function name: main
** Descriptions: 初始化外部中断EINT4,然后循环等待中断。
** Input: 无
** Output: 系统返回值0
********************************************************************************************************/
int  main(void)
{	
	uint8 i;
	rGPECON = rGPECON&(0xF03FFFFF)|(0x02<<26)|(0x02<<24)|(0x02<<22);
	rGPGCON = rGPGCON&(0xFFFFFFCF)|(0x01<<4);
	rGPGDAT = rGPGDAT|(1<<2);
	SpiInit();
	while(1)
	{
		for(i=0;i<16;i++)
		{
			MSendData(~DISP_TAB[i]);
			DelayNS(50);
			
		}	
	}
	return(0);
}

/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -