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

📄 inter.c

📁 可编程彩色光频转换器TCS230在61单片机上的应用
💻 C
字号:
#include "spce061a.h"
#include "MyBit.h"

long  		Fre_Div_A=0;							//定义频率存放变量,不是真正的频率,而是特定时间内的脉冲数量
long  		Fre_Div_B=0;
long	 	Fre=0;									//频率
int 		TranCompleteFlag=0;						//转换完成标志

int 		Count=0;
long 		Count_Buf=0;
unsigned int TimerA_data=0;
/*void IRQ3(void) __attribute__ ((ISR));
void IRQ3(void)
{
	__asm("irq off");
	if(*P_INT_Ctrl&C_IRQ3_EXT1)
	{
		*P_INT_Clear=C_IRQ3_EXT1;			//清除中断标志
		Fre_Div_A+=1;						//外部中断1每中断一次,
		if(Fre_Div_A==1000)
		{
			Fre_Div_B+=1;
			Fre_Div_A=0;
		}
	}
	else ;
	__asm("irq on");
}*/
void IRQ3(void) __attribute__ ((ISR));
void IRQ3(void)
{
	//__asm("irq off");
	if(*P_INT_Ctrl&C_IRQ3_EXT1)
	{
		*P_INT_Clear=C_IRQ3_EXT1;			//清除中断标志
		Count_Buf=Count;
		TimerA_data=*P_TimerA_Data;
		Count=0;
		*P_TimerA_Data=0;
	}
	else ;
	//__asm("irq on");
}

void IRQ5(void) __attribute__ ((ISR));
void IRQ5(void)
{
	if(*P_INT_Ctrl&C_IRQ5_4Hz)
	{
		*P_INT_Clear=C_IRQ5_4Hz;
		Fre=(Fre_Div_B*1000+Fre_Div_A)*4;
		TranCompleteFlag=1;		//转换完成标志
		Fre_Div_B=0;
		Fre_Div_A=0;
	}
	else ;
}

void IRQ1(void) __attribute__ ((ISR));
void IRQ1(void)
{
	if(*P_INT_Ctrl&C_IRQ1_TMA)
	{
		*P_INT_Clear=C_IRQ1_TMA;
		Count+=1;
	}
	else ;
}

⌨️ 快捷键说明

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