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

📄 extint.c

📁 周立功开发板
💻 C
字号:
/****************************************Copyright (c)**************************************************/
/**                                
;**                                 西南科技大学计算机科学学院
;**                                   
;**                                http://www.cs.suswt.edu.cn
;**            
;**             日期:  2007/10/17 
;**             描述:  西南科技大学计算机学院CS-II型实验板外部中断驱动工作程序 
;**             作者:
;**
;**--------------exint.c文件
;**------------------------------------------------------------------------------------------------------*/

/**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#define _EXINT_C_
#ifdef  _EXINT_C_

/************************************************
 *          Header File                         * 
 ***********************************************/
 #include"config.h"
 #include"sounder.h"
 #include"led.h"
 
/************************************************
 *          Globale variable					*
 ***********************************************/

/**--------------------------------------------------------------------------**/
//                                外部中断0


/*
名称           描述                      访问复位值*            地址
外部中断
EXTINT    外部中断标志寄存器                R/W 0             0xE01FC140     包含EINT0、EINT1、EINT2和EINT3的中断标志。   
EXTWAKE   外部中断唤醒寄存器                R/W 0             0xE01FC144     包含3个用于控制外部中断中断是否将处理器从掉电模式唤醒的使能位。
EXTMODE   外部中断方式寄存器                R/W 0             0xE01FC148     控制由每个引脚的边沿或电平触发中断
EXTPOLAR  外部中断极性寄存器                R/W 0             0xE01FC14C     控制由每个引脚的哪种电平或边沿来触发中断

*/

/*******************************************************************************
Function Name: void __irq IRQEint0(void)  						    		   *
Description  : 外部中断0的中断服务函数,需要利用外部中断0进行中断的程序都可以  *
			   放在这个函数中                                                  *
               ads1.2 规定,在定义中断服务函数时,必须加入关键字__irq保证函数返*
			   回时会切换处理器模式										       *
			   需要注意的是:注意在退出中断服务程序时,要清零相应外设的中断标志*
			   以及VICVectAddr,为响应下一次中断做好准备                       *      	
*******************************************************************************/
uint32 tmp_cnt=100000;
uint32 dis_cnt = 0;
void __irq IRQEint0(void)
{	
		
	SOUNDEROn();
	while(tmp_cnt!=0)
	{
		tmp_cnt--;
	}
	LEDPrint(dis_cnt++);
	SOUNDEROff();
	tmp_cnt=100000;
	
	/* 上面添加需要定时器中断的代码*/	
	EXTINT = 0x01;                          //清除中断
	VICVectAddr = 0;	                    //清除地址
}

/*******************************************************************************
Function Name:	void EINT0Init(void)          								   *
Description  :	外部中断0初始化设置,主要设置引脚连接模块,电平触发方式,中断  *
                优先级,中断服务程序入口地址等                                 *
*******************************************************************************/
void EINT0Init(void)
{
	PINSEL1 = (PINSEL1&0xfffffffc)|0x01;    //P0.16 EINT0	
	EXTMODE |= 0x03; /* something wrong */  //EINT0使用边沿触发
	EXTPOLAR &= 0X01;                       //EINT0高电平或上升沿有效
	
	VICIntSelect &=0xffff7fff;              //设置EINT0为IRQ中断
	VICVectCntl1 = 0x20|14;                 //为中断源分配向量IRQ的优先级 ,VICVectCntl n,n值越小优先级越高,0<=n<=15
 	                                        //中断源序号为14  代表外部中断0中断
	VICVectAddr1 = (uint32)IRQEint0;        //向量地址寄存器  为该中断优先级设置服务程序入口地址
	VICIntEnable = 0x00004000;              //中断使能 允许相应中断源产生中断
}


#endif
/*****************************************************************************
 *                         End of Entire File                                *
 ****************************************************************************/
 

⌨️ 快捷键说明

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