📄 lt.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 + -