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

📄 lld_eft.c

📁 本程序为ST公司开发的源代码
💻 C
📖 第 1 页 / 共 3 页
字号:
tVoid EFT_IntTimer1 (tVoid){    tU16 tmp_sr;    tU16 tmp_cntr;        tmp_sr = rd16_reg(Eft1,sr);        tmp_cntr = rd16_reg(Eft1,Cntr);       	/* Call application callback */  	INT_EFT_EndTr_Mgr_Str[EFT1_GLOBAL_INT]();        if(tmp_sr & INCA_MSK)  /* Input Capture A set */    {        wr16(Eft1,sr,icfa,0);    }    if(tmp_sr & INCB_MSK)  /* Input Capture B set */    {        wr16(Eft1,sr,icfb,0);    }    if(tmp_sr & TMR_OVF)  /* Timer overflow set */    {        wr16(Eft1,sr,tof,0);    }}#endif/*************************************************************************                                                                       ** FUNCTIONS                                                             **                                                                       **      EFT_IntTimer1OutCompA                                            **                                                                       ** DESCRIPTION                                                           **                                                                       **      EFT timer 1 output compare A int control (EFT1)                  **                                                                       ** CALLS                                                                 **                                                                       **      LLD macros                                                       **                                                                       ** INPUTS                                                                **                                                                       **      None                                                             **                                                                       ** OUTPUTS                                                               **                                                                       **      None                                                             **                                                                       *************************************************************************/#ifdef OS20_USE_TIMER1tVoid EFT_IntTimer1OutCompA (tVoid){   tU16 tmp_sr;   tU16 tmp_cntr;   tmp_sr = rd16_reg(Eft1,sr);      tmp_cntr = rd16_reg(Eft1,Cntr);   if(tmp_sr & OCFA_MSK)  /* Output Compare A set */   {   	if (Eft_TimAccuA == 0)   	{	   	/* Call application callback */   		INT_EFT_EndTr_Mgr_Str[EFT1_OCA_INT]();   					if (Eft_TimAccuValA > EFT_MAX_TIMER_PROGRAMMATION)			{						Eft_TimValueA = EFT_MAX_TIMER_PROGRAMMATION;				Eft_TimAccuA = Eft_TimAccuValA - EFT_MAX_TIMER_PROGRAMMATION;			}			else			{				Eft_TimValueA = Eft_TimAccuValA;				Eft_TimAccuA = 0;					}   		   	}   	else   	{ 			if (Eft_TimAccuA > EFT_MAX_TIMER_PROGRAMMATION)			{										Eft_TimValueA = EFT_MAX_TIMER_PROGRAMMATION;				Eft_TimAccuA -= EFT_MAX_TIMER_PROGRAMMATION;			}			else			{				Eft_TimValueA = Eft_TimAccuA;				Eft_TimAccuA = 0;					}    	   	}          wr16(Eft1,sr,ocfa,0);        wr16_reg(Eft1,Ocar,(Eft_TimValueA+tmp_cntr));/* Program OutputCompare Reg A */   }}#endif	/*************************************************************************                                                                       ** FUNCTIONS                                                             **                                                                       **      EFT_IntTimer1OutCompB                                            **                                                                       ** DESCRIPTION                                                           **                                                                       **      EFT timer 1 output compare A int control (EFT1)                  **                                                                       ** CALLS                                                                 **                                                                       **      LLD macros                                                       **                                                                       ** INPUTS                                                                **                                                                       **      None                                                             **                                                                       ** OUTPUTS                                                               **                                                                       **      None                                                             **                                                                       *************************************************************************/#ifdef OS20_USE_TIMER1tVoid EFT_IntTimer1OutCompB (tVoid){    tU16 tmp_sr;    tU16 tmp_cntr;    tmp_sr = rd16_reg(Eft1,sr);        tmp_cntr = rd16_reg(Eft1,Cntr);    if(tmp_sr & OCFB_MSK)  /* Output Compare B set */    {    	/* Call application callback */    	INT_EFT_EndTr_Mgr_Str[EFT1_OCB_INT]();    	        wr16(Eft1,sr,ocfb,0);                wr16_reg(Eft1,Ocbr,(Eft_TimValueB+tmp_cntr));/* Program OutputCompare Reg B (for reload value) */    }}#endif/*************************************************************************                                                                       ** FUNCTIONS                                                             **                                                                       **      OS20_EFT_TimerConfig                                            	**                                                                       ** DESCRIPTION                                                           **                                                                       **      OS20 EFT timer 0 configuration						            **                                                                       ** INPUTS                                                                **                                                                       **      tU8 TimerId:   Timer identificator                               **                                                                       ** OUTPUTS                                                               **                                                                       **      None                                                             **                                                                       *************************************************************************/tVoid OS20_EFT_TimerConfig (tU8 TimerId){  	if (EFT0 == TimerId)	{  	  wr16_reg(Eft0,sr,0);	     	  wr16_reg(Eft0,Cr2,TIMER_PRES_VAL);	  	  wr16_reg(Eft0,Ocar,0xFFFF);	  wr16_reg(Eft0,Ocbr,0xFFFF);	  	  ResetCounter(Eft0);	// loop to avoid first clock wrap FFFC -> 0000	  	  EFT_TimerStart(TimerId);	  	  wr16_reg(Eft0,sr,0);	  	  wr16(Eft0,Cr2,toe,1);      	}}/*************************************************************************                                                                       ** FUNCTIONS                                                             **                                                                       **     OS20_EFT_SetOCAR                                        			**                                                                       ** DESCRIPTION                                                           **                                                                       **     Set Output Compare A Register value                               **																		** INPUTS                                                                **                                                                       **      tU8 TimerId:   	Timer identificator                             **      unsigned value:	output compare value                            **																		** OUTPUTS                                                               **                                                                       **      None                                                             **                                                                       *************************************************************************/tVoid OS20_EFT_SetOCAR(tU8 TimerId, unsigned value){	if (EFT0 == TimerId)	{		wr16_reg(Eft0,Ocar,value);	}}/*************************************************************************                                                                       ** FUNCTIONS                                                             **                                                                       **     OS20_EFT_SetOCAIE_TOE                                   			**                                                                       ** DESCRIPTION                                                           **                                                                       **     Set Output Compare A and Timer Overflow Interrupts                **																		** INPUTS                                                                **                                                                       **      tU8 TimerId:   	Timer identificator                             **																		** OUTPUTS                                                               **                                                                       **      None                                                             **                                                                       *************************************************************************/tVoid OS20_EFT_SetOCAIE_TOE(tU8 TimerId){	if (EFT0 == TimerId)	{		tU16 temp = rd16_reg(Eft0,Cr2);		temp |= (1<<14)|(1<<13);		wr16_reg(Eft0,Cr2,temp);	}}/*************************************************************************                                                                       ** FUNCTIONS                                                             **                                                                       **     OS20_EFT_ReSetOCAIE                                     			**                                                                       ** DESCRIPTION                                                           **                                                                       **     ReSet Output Compare A Interrupt              					**																		** INPUTS                                                                **                                                                       **      tU8 TimerId:   	Timer identificator                             **																		** OUTPUTS                                                               **                                                                       **      None                                                             **                                                                       *************************************************************************/tVoid OS20_EFT_ReSetOCAIE(tU8 TimerId){	if (EFT0 == TimerId)	{		wr16(Eft0,Cr2,ocaie,0);	}}/*************************************************************************                                                                       ** FUNCTIONS                                                             **                                                                       **     OS20_EFT_GetSRegister                                   			**                                                                       ** DESCRIPTION                                                           **                                                                       **     Get Status Register value			              					**																		** INPUTS                                                                **                                                                       **      tU8 TimerId:   	Timer identificator                             **																		** OUTPUTS                                                               **                                                                       **      Status Register                                                  **                                                                       *************************************************************************/tU16 OS20_EFT_GetSRegister(tU8 TimerId){	if (EFT0 == TimerId)	{		return rd16_reg(Eft0,sr);	}	else	{		return 0;	}}/*************************************************************************                                                                       ** FUNCTIONS                                                             **                                                                       **     OS20_EFT_ReSetOCFA	                                   			**                                                                       ** DESCRIPTION                                                           **                                                                       **     Reset Output Compare Flag A		              					**																		** INPUTS                                                                **                                                                       **      tU8 TimerId:   	Timer identificator                             **																		** OUTPUTS                                                               **                                                                       **      None				                                                **                                                                       *************************************************************************/tVoid OS20_EFT_ReSetOCFA(tU8 TimerId){	if (EFT0 == TimerId)	{		wr16(Eft0,sr,ocfa,0);	}}/*************************************************************************                                                                       ** FUNCTIONS                                                             **                                                                       **     OS20_EFT_ReSetTOF		                                   			**                                                                       ** DESCRIPTION                                                           **                                                                       **     Reset Timer Overflow		              							**																		** INPUTS                                                                **                                                                       **      tU8 TimerId:   	Timer identificator                             **																		** OUTPUTS                                                               **                                                                       **      None				                                                **                                                                       *************************************************************************/tVoid OS20_EFT_ReSetTOF(tU8 TimerId){	if (EFT0 == TimerId)	{		wr16(Eft0,sr,tof,0);	}}#ifdef __cplusplus}#endif/* End of file */

⌨️ 快捷键说明

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