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

📄 isr_2.c

📁 这里有很多我自己做的凌阳单片机源程序
💻 C
字号:
//////////////////////////////////////////
//函数:IRQ1(void)
//描述:中断服务函数
//参数:无
//返回:无
//////////////////////////////////////////	
#include<spce061a_chf.h>
#include"zhonghe.h"
unsigned int TBsin[200]={0x8000,0x8202,0x8403,0x8604,0x8803,0x8a00,0x8bfb,0x8df2,0x8fe6,0x91d7, 
                         0x93c1,0x95b8,0x9789,0x9964,0x9b39,0x9d06,0x9ecd,0xa08b,0xa242,0xa3f0,
                         0xab94,0xa730,0xa8c1,0xaa48,0xabc4,0xad35,0xae9b,0xaff5,0xb143,0xb285,
                         0xb3b9,0xb4e1,0xb5fb,0xb708,0xb807,0xb8f7,0xb9da,0xbaad,0xbb72,0xbc28,
                         0xbcce,0xbd6b,0xbded,0xbe65,0xbece,0xbf26,0xbf6e,0xbfa7,0xbfcf,0xbfe7,
                         0xbff0,0xbfe7,0xbfcf,0xbfa7,0xbf6e,0xbf26,0xbece,0xbe65,0xbded,0xbd66,
                         0xbcce,0xbc28,0xbb72,0xbaad,0xb9da,0xb8f8,0xb807,0xb708,0xb5fb,0xb4ee,
                         0xb3ba,0xb285,0xb143,0xaff5,0xae96,0xad35,0xabc4,0xaa48,0xa8c1,0xa730,
                         0xa594,0xa3f0,0xa242,0xa08c,0x9ecd,0x9d06,0x9b39,0x9964,0x9789,0x95a8,
                         0x93c2,0x91d6,0x8fe6,0x8df2,0x8bfb,0x8a00,0x8803,0x8604,0x8403,0x8000,
                         0x8000,0x7dfe,0x7bfd,0x79fc,0x77fd,0x7600,0x7405,0x720e,0x701a,0x6e2a,
                         0x6c3f,0x6a58,0x6877,0x669c,0x64c7,0x62fa,0x6133,0x5f75,0x5dbe,0x5c10,
                         0x5abc,0x58d0,0x573f,0x55b8,0x543c,0x52cb,0x5165,0x500b,0x4ebd,0x4d7b,
                         0x4c47,0x4b1f,0x4a05,0x48f8,0x47f9,0x4709,0x4626,0x4553,0x448e,0x43d8,
                         0x4332,0x429a,0x4213,0x419b,0x4132,0x40da,0x4092,0x4059,0x4031,0x4019,
                         0x4010,0x4019,0x4031,0x4059,0x4092,0x40da,0x4132,0x419b,0x4213,0x429a,
                         0x4332,0x43d8,0x448e,0x4553,0x4626,0x4708,0x47f9,0x48f8,0x4a05,0x4b1f,
                         0x4c46,0x4d7b,0x4ebd,0x500b,0x5165,0x52cb,0x543c,0x55b8,0x5738,0x58d0,
                         0x5abc,0x5c10,0x5dbe,0x5f74,0x6133,0x62fa,0x64c7,0x669c,0x6877,0x6a58,
                         0x6c3f,0x6e2a,0x701a,0x720e,0x7405,0x7600,0x77fd,0x79fc,0x7bfd,0x7dfe };
unsigned int uiData_DA=0xffc0;
unsigned int int_flag=0xffff;
unsigned int SinData=0;
unsigned int sin_flag=0x0000;
unsigned int san_flag=0x0000;
unsigned int j=0;
unsigned int AD_flag=0xffff;
extern unsigned int pin_lv[8];
extern unsigned int fu_du[5];
void BREAK(void) __attribute__ ((ISR));
void BREAK(void)
{
}
void FIQ(void) __attribute__ ((ISR));
void FIQ(void)
{ 	
}
void IRQ0(void) __attribute__ ((ISR));
void IRQ0(void)
{
}
void IRQ2(void) __attribute__ ((ISR));
void IRQ2(void)
{
	if(sin_flag)
	{		
		*P_DAC1=TBsin[SinData++]; 
		if(SinData==200)
			SinData=0;	
	}
	else if(san_flag)
	{
			while(j!=0xffc0) 
  		 { 
  	 		*P_DAC1=j;  //输出为0    	   
    		 j=j+0x0040; //幅度提高一个台阶
    		 *P_Watchdog_Clear=0x0001;
  		 }
  		 while(j!=0)         
  		 { 
   			*P_DAC1=j;  //输出为峰值 	   
 	   		 j=j-0x0040; //幅度减小一个台阶
 	   		 *P_Watchdog_Clear=0x0001;
 	  	 } 
	}
	*P_INT_Clear=0x0400;
}
void IRQ1(void) __attribute__ ((ISR));
void IRQ1(void)
{	
	*P_DAC_Ctrl=0x0002;
	int_flag^=0xffff;	
	if(int_flag)
	{		
		*P_DAC1=0x0000;	
		*P_DAC_Ctrl=0x0000;		
	}
	else
	{
		*P_DAC1=uiData_DA;
		*P_DAC_Ctrl=0x0000;				
	}
	*P_INT_Clear=0x1000;	
}
void IRQ3(void) __attribute__ ((ISR));
void IRQ3(void)
{		
	if(*P_INT_Ctrl&0x0200)
	{
		*P_DAC_Ctrl=0x0002;	
		do_key();	
		*P_IOA_Data&=0x0007;
		*P_INT_Clear=0x0200;
		*P_DAC_Ctrl=0x0000;
	}
	else if(*P_INT_Ctrl&0x0100)
	{			
		AD_flag^=0xffff;		
		if(AD_flag==0)
		{
			*P_DAC_Ctrl=0x0000;
			init_IO_lcd();
			lcd_init();		
			lcd_display(pin_lv,sizeof(pin_lv),0);//分两行显示,一行显示频率,一行显示幅度
			lcd_display(fu_du,sizeof(fu_du),0x40);
			*P_INT_Ctrl=0x1300;	
		}//AD_flag==0说明不进行AD处理,所以要进行波形发生
		else
		{
			*P_DAC_Ctrl=0x0002;			
			*P_INT_Ctrl=0x0300;
		}
		*P_INT_Clear=0x0100;
	}
	else
	{
		*P_INT_Clear=0x0080;
	}		
}
void IRQ4(void) __attribute__ ((ISR));
void IRQ4(void)
{
}
void IRQ5(void) __attribute__ ((ISR));
void IRQ5(void)
{	
}
void IRQ6(void) __attribute__ ((ISR));
void IRQ6(void)
{
}
void IRQ7(void) __attribute__ ((ISR));
void IRQ7(void)
{
}

⌨️ 快捷键说明

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