/***********************************************************************
 * Copyright (c)  2017 - 2022, Unicmicro Co.,Ltd .
 * All rights reserved.
 * Filename    : btimer01.h
 * Description : btimer01 driver header file
 * Author(s)   : Sissi
 * version     : V1.0
 * Modify date : 2022-08-08
 ***********************************************************************/
#ifndef __BTIMER01_H__
#define __BTIMER01_H__
 
#include  "system_um321xF.h"

#define BTIMER01_IRQ_ENABLE  1

#define BTIMER01_IRQ_CLEAR	 0xF	

#define BTIMER0_UE_IRQ 	 	 0
#define BTIMER0_CNT_IRQ  	 1
#define BTIMER1_UE_IRQ       2
#define BTIMER1_CNT_IRQ      3

#define VAL_BTIMER0_UIE   	(1<<0)			//CNT0 Update事件中断
#define VAL_BTIMER0_CNIE   	(1<<1)			//比较0中断
#define VAL_BTIMER1_UIE   	(1<<2)			//CNT1 Update事件中断
#define VAL_BTIMER1_CNIE   	(1<<3)			//比较1中断

#define BTIMER01_CLKEN  	(1<<6)			//BTIMER01模块时钟使能
#define BTIMER01_RESET		(1<<6)			//BTIMER01模块复位使能

#define BTIMER01_CEN_DISABLE (0<<0)			//BTIMER01计数器禁止
#define BTIMER01_CEN_ENABLE  (1<<0)			//BTIMER01计数器使能

/************************************************************************
 * Function   	: btimer0_count_init
 * Description	: btimer0 count 初始化
 * Input 		: uint16_t arr 		重载值设置
 *			  	  uint16_t psc 		预分频值设置
 * Output 		: none
 * Return		: none
 ************************************************************************/
void btimer0_count_init(uint16_t arr, uint16_t psc);

/************************************************************************
 * Function   	: btimer1_count_init
 * Description	: btimer1 count 初始化
 * Input 		: uint16_t arr 		 重载值设置
 *			  	  uint16_t psc 		 预分频值设置
 * Output 		: none
 * Return		: none
 ************************************************************************/
void btimer1_count_init(uint16_t arr, uint16_t psc);

/************************************************************************
 * Function   	: btimer0_pwm_cn_init
 * Description	: btimer0 count pwm 输出初始化
 * Input 		: uint16_t arr 		重载值设置
 *				  uint16_t ccr 		比较值设置
 *			  	  uint16_t psc 		预分频值设置
 * Output 		: none
 * Return		: none
 ************************************************************************/
void btimer0_pwm_cn_init(uint16_t arr,uint16_t ccr,uint16_t psc);

/************************************************************************
 * Function   	: btimer1_pwm_cn_init
 * Description	: btimer1 count pwm 输出初始化
 * Input 		: uint16_t arr 		重载值设置
 *      		  uint16_t ccr 		比较值设置
 *			  	  uint16_t psc 		预分频值设置
 * Output 		: none
 * Return		: none
 ************************************************************************/
void btimer1_pwm_cn_init(uint16_t arr,uint16_t ccr,uint16_t psc);

/************************************************************************
 * Function   	: btimer01_irq_init
 * Description	: btimer01 中断初始化
 * Input 		: uint8_t irq_enable				btimer01 中断使能开关 1：使能 0：禁止
				  uint8_t btimer_irq_type 			btimer01 中断类型选择
 *            	  void (*pfunc)()					btimer01 中断回调函数
 * Output 		: none
 * Return		: none
 ************************************************************************/	
void btimer01_irq_init(uint8_t irq_enable,uint8_t btimer_irq_type,void (*pfunc)());

#endif
