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

📄 tim.h

📁 str71x计数器实用库(根据需要已修改)。各功能分类列出
💻 H
字号:
/****************************************Copyright (c)**************************************************                              
**                               Henan Star Hi-Tech CO.,LTD                                      
**                                  All rights reserved.
**
**----------------------------------------File Info-----------------------------------------------------
** 文件名称:
** 工程项目:
** 说    明:
** 
** 作    者:              日    期:
** 建立版本:             
**
**----------------------------------------modification--------------------------------------------------
** 作    者:
** 日    期:
** 版    本:            标    记:
** 说    明:
**
********************************************************************************************************/

#ifndef __TIM_H_
#define __TIM_H_

#include "71x_lib.h"

//SR--状态标志位定义
typedef enum{
    TIM_ICFA     = (1<<15),
    TIM_OCFA     = (1<<14),
    TIM_TOF      = (1<<13),
    TIM_ICFB     = (1<<12),
    TIM_OCFB     = (1<<11)
}TIM_Flags;


/*****************************************************************************************
** 函数名称:inline void TIM_Start(TIM_TypeDef *tim)
** 函数功能:TIM开始计数
** 入口参数:tim--TIM通道
** 返 回 值:void
** 编    写:        日    期:      版 本 号:
** 修改历史:
******************************************************************************************/
inline void TIM_Start(TIM_TypeDef *tim)
{
    tim->CR1 |= 1<<15;
}

/*****************************************************************************************
** 函数名称:inline void TIM_Stop(TIM_TypeDef *tim)
** 函数功能:停止TIM计数
** 入口参数:tim--TIM通道
** 返 回 值:void
** 编    写:        日    期:      版 本 号:
** 修改历史:
******************************************************************************************/
inline void TIM_Stop(TIM_TypeDef *tim)
{
    tim->CR1 &= ~(1<<15);
}

/*****************************************************************************************
** 函数名称:
** 函数功能:
** 入口参数:
** 返 回 值:
** 编    写:        日    期:      版 本 号:
** 修改历史:
******************************************************************************************/
inline bool TIM_EnableState(TIM_TypeDef *tim)
{
    return ((tim->CR1&(1<<15))==0) ? FALSE:TRUE;
}

/*****************************************************************************************
** 函数名称:inline void TIM_StateClear(TIM_TypeDef *tim, TIM_Flags x)  
** 函数功能:清除TIM中断状态标志位
** 入口参数:tim--TIM通道           x--中断标志位
** 返 回 值:
** 编    写:        日    期:      版 本 号:
** 修改历史:
******************************************************************************************/
inline void TIM_StateClear(TIM_TypeDef *tim, TIM_Flags x)      
{
    tim->SR &= ~x;
}

/*****************************************************************************************
** 函数名称:
** 函数功能:
** 入口参数:
** 返 回 值:
** 编    写:        日    期:      版 本 号:
** 修改历史:
******************************************************************************************/
inline u16 TIM_ReadCounterValue(TIM_TypeDef *tim)
{
    return tim->CNTR;
}

/*****************************************************************************************
** 函数名称:
** 函数功能:计算器模式下,重新写计数中断值
** 入口参数:
** 返 回 值:
** 编    写:        日    期:      版 本 号:
** 修改历史:
******************************************************************************************/
inline void TIM_WriteCounterDiv(TIM_TypeDef *tim, u32 cdiv)
{
    tim->OCBR = cdiv -5;
}

/*=======================================================
=   函数原型声明
=======================================================*/
void TIM_TimerModeConfig(TIM_TypeDef *tim, u32 ms);         //定时器模式
void TIM_CounterModeConfig(TIM_TypeDef *tim, u32 divp);     //计数器模式
void TIM_PWMOModeConfig(TIM_TypeDef *tim, u32 fullus, u32 highus);      //PWM模式
void TIM_PWMOSetHighCircle(TIM_TypeDef *tim, u32 highus);    //设置PWM模式高电平周期

#endif

⌨️ 快捷键说明

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