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

📄 interrupt.c

📁 7541数字高频头源程序
💻 C
字号:
/*********************************************************
	Project:		ST FST(TDA7540)
	File name:	interrupt.c
	Description:	
	Write/Modify:	Perry
	Time:		2005-11-22- 10:46:39
*********************************************************/

#include "public.h"


unsigned char T10ms;	
unsigned char T100ms;
unsigned char T1s;

#pragma TRAP_PROC SAVE_REGS
void INT_PortB0123 (void)
{   

}

#pragma TRAP_PROC SAVE_REGS
void INT_Timer1 (void)
{
	UCharInt temp;

	if (TAOCF1)
  	{ 

		//fOSC=8M
		//fOSC2=8M/2 <PLL OPTION BIT>
		//fCPU=fOSC2 <MCCSR:cp1,cp0,sms>
		//fCLK=fCPU/8 <CR2:cc1,cc0>
		// 1CLK=1/(8M/2/8)
		// 1s=500000 CLK
		// 1ms=500000/1000=500 CLK=0x01F4 CLK
		temp.byte[1]=TAOC1LR;
		temp.byte[0]=TAOC1HR;
		#ifdef MCU8_664M
		temp.Dbyte+=1083;		// 2ms
		#else
		temp.Dbyte+=1000;		// 2ms
		#endif
		TAOC1HR=temp.byte[0];
		TAOC1LR=temp.byte[1];
		

		// 2ms below


		// 10ms below
		if(T10ms>0)
		{
			T10ms--;
			return;
		}
		else
		{
			T10ms=4;
		}

		PowerTimer10ms();
		KeyTimer100ms();
		AudioTimerINT10ms();
		RDSDataTimer10ms();
		Radio10msTimer();
		AlignTimer10ms();

		// 100ms below
		if(T100ms>0)
		{
			T100ms--;
			return;
		}
		else
		{
			T100ms=9;
		}

		AudioTimerINT100ms();
		RDSTimer100ms();
		RDSDataTimer100ms();
		Radio100msTimer();
		DisplayTimer100ms();
		AlignTimer100ms();

		
		#ifdef MCU8_664M
		ClockRun();
		#endif

  		// 1s below
		if(T1s>0)
		{
			T1s--;
			return;
		}
		else
		{
			T1s=9;
		}

		RDSDataTimer1s();
		PowerTimer1s();
		
  	}
  	
 	if (TAOCF2)
  	{
  		//fOSC=8M
		//fOSC2=8M/2 <PLL OPTION BIT>
		//fCPU=fOSC2 <MCCSR:cp1,cp0,sms>
		//fCLK=fCPU/8 <CR2:cc1,cc0>
		// 1CLK=1/(8M/2/8)
		// 1s=500000 CLK
		// 1ms=500000/1000=500 CLK=0x01F4 CLK
		temp.byte[1]=TAOC2LR;
		temp.byte[0]=TAOC2HR;
		#ifdef MCU8_664M
		temp.Dbyte+=357;		// 660us
		#else
		temp.Dbyte+=330;		// 660us
		#endif
		TAOC2HR=temp.byte[0];
		TAOC2LR=temp.byte[1];

		//Ir_Timer();


  	}  
}

#pragma TRAP_PROC SAVE_REGS
void INT_Timer2 (void)
{
	UCharInt temp;
	
	if (TBOCF1)
	{
		//fOSC=8M
		//fOSC2=8M/2 <PLL OPTION BIT>
		//fCPU=fOSC2 <MCCSR:cp1,cp0,sms>
		//fCLK=fCPU/8 <CR2:cc1,cc0>
		// 1CLK=1/(8M/2/8)
		// 1s=500000 CLK
		// 1ms=500000/1000=500 CLK=0x01F4 CLK
		/*temp.byte[1]=TIM2_OC1L;
		temp.byte[0]=TIM2_OC1H;
		temp.Dbyte+=CDCRELOADTIME;
		TIM2_OC1H=temp.byte[0];
		TIM2_OC1L=temp.byte[1];*/

		//TIM2_OC1L--;
		/*temp.byte[1]=TIM2_OC1L;
		temp.byte[0]=TIM2_OC1H;
		temp.Dbyte--;
		TIM2_OC1H=temp.byte[0];
		TIM2_OC1L=temp.byte[1];*/

		//fOSC=8.664M
		//fOSC2=8.664M/2 <PLL OPTION BIT>
		//fCPU=fOSC2 <MCCSR:cp1,cp0,sms>
		//fCLK=fCPU/8 <CR2:cc1,cc0>
		// 1CLK=1/(8.664M/2/8)
		// 1s=541500 CLK
		// 1ms=541500/1000=541.5 CLK
		// 2ms=1083 CLK
		// 50ms=27075 CLK
		temp.byte[1]=TBOC1LR;
		temp.byte[0]=TBOC1HR;
		temp.Dbyte+=27075;
		TBOC1HR=temp.byte[0];
		TBOC1LR=temp.byte[1];

		#ifdef MCU8_664M
		if(System.AccMode==ACCMODE_ACCOFF)
		{
			TBOC2HR=TBCHR;
			TBOC2LR=TBCLR;
		}
		ClockRun();
		#endif
		
	}

	if (TBOCF2)
	{
		//fOSC=8M
		//fOSC2=8M/2 <PLL OPTION BIT>
		//fCPU=fOSC2 <MCCSR:cp1,cp0,sms>
		//fCLK=fCPU/8 <CR2:cc1,cc0>
		// 1CLK=1/(8M/2/8)
		// 1s=500000 CLK
		// 1ms=500000/1000=500 CLK=0x01F4 CLK
		temp.byte[1]=TBOC2LR;//TIM2_CNTL;
		temp.byte[0]=TBOC2HR;//TIM2_CNT;
		temp.Dbyte+=300;
		TBOC2HR=temp.byte[0];
		TBOC2LR=temp.byte[1];

		NOP;
		NOP;
	}
}


#pragma TRAP_PROC SAVE_REGS
void INT_PortB4567 (void)
{   

}

#pragma TRAP_PROC SAVE_REGS
void INT_RTC (void)
{
	if(OIF)
	{
	// 50ms
	#ifndef MCU8_664M
	ClockRun();
	#endif
	}
}

#pragma TRAP_PROC SAVE_REGS
void INT_PortA0123 (void)
{
	// RDS
	RDSInt();
}

#pragma TRAP_PROC SAVE_REGS
void INT_PortF012(void)                                                             
{
	// REMOTE
	//InfraRed();
}
#pragma TRAP_PROC SAVE_REGS
void INT_I2C(void)                                                             
{

}

#pragma TRAP_PROC SAVE_REGS
void NoFunction(void)
{
}


/*********************************************************
				File End
*********************************************************/

⌨️ 快捷键说明

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