isr.c

来自「这里有很多我自己做的凌阳单片机源程序」· C语言 代码 · 共 42 行

C
42
字号
#include<spce061a_chf.h>
#include"jiema_user.h"
int flag=0;//中断计数器
extern num[34];
void IRQ3(void)__attribute__((ISR));
void IRQ3(void)
{	
	if(*P_INT_Ctrl&0x0100)//是EXIT1中断
	{
		*P_TimerA_Ctrl=stopA;		
		num[flag]=*P_TimerA_Data;//读TimerA计数的结果
		if((1100<num[1])&(num[1]<1200))//认为是接收到连发代码,则舍弃,进行下次解码
		{
			flag=0;
			*P_INT_Clear=0x0100;//清中断0
		}	
		flag++;	
		if(flag<=33)
		{
			*P_TimerA_Data=start_dataA;
			*P_TimerA_Ctrl=startA;//TimerA停止计数	
			
		}
		else
		{
			//flag=0;
			asm("nop");
		}		
		*P_INT_Clear=0x0100;//清中断0
	}		
	else if(*P_INT_Ctrl&0400)//EXIT2中断
	{
		*P_INT_Clear=0x0400;
	}
	else
	{
		*P_INT_Clear=0x0080;//触键唤醒中断
	}
}
		
			
		

⌨️ 快捷键说明

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