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

📄 int2gisr.c

📁 dsp.rar
💻 C
字号:

#include "F2407REGS_c.h"
/*************************************************************************
文件名:		interrupt INT2()
日期:      	2007年02月8日
公司(作者):  
描述和说明:	CPU核级中断2(INT2)主服务程序
*************************************************************************/
ioport unsigned port0002;		// 定义I/O口地址变量
								// 由于I/O空间只有一个设备AD7865
								// 所以AD7865地址可任意设,现设为0x0002
#define AD7865_CS  port0002		// 定义字符标识AD7865_CS等于I/O口地址0x0002 
unsigned int timer1_number=0;	// 全局变量,用于定时器中断计数
signed int AD7865_U;			// 存14位AD转换结果,后变为16位数
signed int U_data_in[320];		// 10个周波AD采样数据缓冲区,为16位2的补码

void interrupt INT2()
{
	switch(PIVR)				// 由外设中断向量寄存器PIVR判断
    {							// 由哪个片内外设事件引起的中断
      case 0x0027:         		// 定时器1的0.625ms周期中断
			 					// 中断向量为0x0027
		   T1CNT=0x00;					// 定时器1的计数器重新赋0
	       EVAIFRA=EVAIFRA&0x0080;		// 清除定时器1周期中断标志,
	        							// 否则以后的中断将被忽略
           AD7865_U=AD7865_CS;			// 读AD转换结果,14位2的补码
		   AD7865_U=AD7865_U<<2;		// 14位2的补码转变为16位2的补码
		   U_data_in[timer1_number]=AD7865_U;	// 存入AD采样数据缓冲区


		   timer1_number++;				// 定时器1中断次数加1
	 	   if(timer1_number==320) 
	 	   {
	 	    timer1_number=0; 			// 采10个周波后,计数复位,重新开始
	 	   }
           PFDATDIR = PFDATDIR&0xFFEF;	// IOPF4输出低电平,为下次再次输出高电平作准备
           PFDATDIR=PFDATDIR|0x1010;    // 为再次启动AD,输出高电平 (IOPF4) CONVST=1,
           								// 形成启动AD所需的上升沿	
	       break;						// 返回
  	  
  	  default:							// 其它结果
	       break; 	       				// 返回
	}
}

⌨️ 快捷键说明

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