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

📄 lt.c

📁 ST7的例子
💻 C
字号:
/*****************************************************************************
ST7LITE39 Timer子程序(以下子程序参考或采用ST公司MCD Application Team提供的相关子程序) 
******************************************************************************/
#include "ST7lib_config.h"                          /* 芯片选择 */       
#include "lt_hr.h"                                  /* IO寄存器位定义 */ 
#include "lt.h"                                     /* IO函数原型定义 */ 
/*-----------------------------------------------------------------------------
 子程序名称   : LT_Init
 输入         : LT_WDG_ENABLE (使能看门狗)
								LT_ICAP_IT_ENABLE (使能输入捕捉中断)
								LT_TB_IT_ENABLE  (使能时基中断)
								LT_TB1_IT_ENABLE (使能时基1中断)
								LT_TB2_IT_ENABLE (使能时基2中断)
								LT_DEFAULT (缺省配置)
 输出         :无
 描述         :定时器初始化子程序
 注释         :接一个参数或用或符号连接的多个参数
-----------------------------------------------------------------------------*/
 void LT_Init(Lt_InitParameter InitValue) 
{      
    unsigned char  Temp; 

    LTCSR2  = LT_DEFAULT;                        /* 清零C/S寄存器2 */
    if(InitValue & LT_TB2_IT_SET)
        LTCSR2 |= LT_TB2_IT_ENABLE;              /* 使能时基2中断 */
    InitValue &= LT_TB2_IT_RESET;
    LTCSR1  = (unsigned char)InitValue;          /* 初始化C/S寄存器1*/
  
} 

/* ----------------------------------------------------------------------------
 子程序名称   : LT_TB
 输入         : LT_SET_TB_1 (设置时基1)
								LT_SET_TB_2 (设置时基2)
 输出         : 无
 描述         : 选择时基
 注释         : 无
 ----------------------------------------------------------------------------*/
void LT_TB(Lt_TB_Param TBValue)                                                            
{
    if ( TBValue == LT_SET_TB_1)
    {			
            LTCSR1 &= LT_TB_1_SET;
    }
    else
    {
       LTCSR1 |= LT_TB_2_SET;
    }
}   

/* ----------------------------------------------------------------------------
 子程序名称   : LT_Disable
 输入         : LT_WDG_DISABLE (禁止看门狗)
								LT_ICAP_IT_DISABLE (禁止输入捕捉中断)
								LT_TB_IT_DISABLE   (禁止时基中断)
								LT_TB1_IT_DISABLE  (禁止时基1中断)
								LT_TB2_IT_DISABLE  (禁止时基2中断)
 输出         : 无
 描述         : 禁止 ICAP,TB,TB1,TB2 中断或者看门狗
 注释         : 接一个参数或用或符号连接的多个参数
 ----------------------------------------------------------------------------*/
void LT_Disable(Lt_Disable_Param DValue)
{   

    if(DValue & LT_TB2_IT_SET)
    {
        LTCSR2 &= LT_TB2_IT_RESET;
        DValue &= LT_TB2_IT_RESET;
    }   
    LTCSR1 &= (unsigned char)~DValue;
		
}


/* ---------------------------------------------------------------------------
 子程序名称   : LT_Status_Flag
 输入         : LT_FLAG_TBF   (时基标志)
								LT_FLAG_TB1F  (时基1标志)
								LT_FLAG_TB2F  (时基2标志)
								LT_FLAG_ICF   (输入捕捉标志)
								LT_FLAG_WDGRF (看门狗复位标志)
 输出         : TRUE 或 FALSE
 描述         : 检查标志的状态
 注释         : 该函数可以循环直至转换结束
 ----------------------------------------------------------------------------*/
BOOL LT_Status_Flag( Lt_Flag FLAG_F)
{           
    switch( FLAG_F )
    {
        case LT_FLAG_TB1F:
             if(LTCSR1 & LT_TB1F_FLAG)		       /* 检查TB1F标志 */
             {
                 return(TRUE);
             }
             else
             {
                 return(FALSE);
             }
        break;
              
        case LT_FLAG_TB2F:    
	         if(LTCSR2 & LT_TB2F_FLAG)						   /* 检查TB2F标志 */
             {
                 return(TRUE);
             }
             else
             {
                 return(FALSE);
             }               
        break;
				
        case LT_FLAG_ICF:
             if(LTCSR1 & LT_ICF_FLAG)
             {
                 return(TRUE);
             }
             else
             {
                 return(FALSE);
             }
             break;
				
	default:	
	     break;	
    }
			return(TRUE);   
}


/* ----------------------------------------------------------------------------
 子程序名称   : LT_Clear_Flag
 输入         : FLAG_TBF   (时基标志)      
							: FLAG_TB1F  (时基1标志)     
							: FLAG_TB2F  (时基2标志)     
							: FLAG_ICF   (输入捕捉标志)  
							: FLAG_WDGRF (看门狗复位标志)
 输出         :无
 描述         : 清零状态标志
 注释         : 按输入参数清标志
 ----------------------------------------------------------------------------*/
void LT_Clear_Flag(Lt_Flag FLAG_F)
{
    unsigned char Temp; 
      
    switch( FLAG_F )
	{

        case LT_FLAG_TB1F:									   /* 清零TB1F */
             Temp = LTCSR1;    
             break;                                                         
				
        case LT_FLAG_TB2F:									   /* 清零TB2F */
             Temp = LTCSR2;
            break;

	default:	
	     break;     
    }
}  

⌨️ 快捷键说明

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