📄 timer16_drv.h
字号:
// ----------
# define Timer16_set_compare_force_a() ((timer16_selected==TIMER16_1)? \
(TCCR1C |= (1<<FOC1A)) : (TCCR3C |= (1<<FOC3A)) )
# define Timer16_set_compare_force_b() ((timer16_selected==TIMER16_1)? \
(TCCR1C |= (1<<FOC1B)) : (TCCR3C |= (1<<FOC3B)) )
# define Timer16_set_compare_force_c() ((timer16_selected==TIMER16_1)? \
(TCCR1C |= (1<<FOC1C)) : (TCCR3C |= (1<<FOC3C)) )
# define Timer16_clear_compare_force_a() ((timer16_selected==TIMER16_1)? \
(TCCR1C &= ~(1<<FOC1A ) : (TCCR3C &= ~(1<<FOC3A)) )
# define Timer16_clear_compare_force_b() ((timer16_selected==TIMER16_1)? \
(TCCR1C &= ~(1<<FOC1B)) : (TCCR3C &= ~(1<<FOC3B)) )
# define Timer16_clear_compare_force_c() ((timer16_selected==TIMER16_1)? \
(TCCR1C &= ~(1<<FOC1C)) : (TCCR3C &= ~(1<<FOC3C)) )
# define Timer16_get_compare_force_a() ((timer16_selected==TIMER16_1)? \
((TCCR1C & (1<<FOC1A)) >> FOC1A) : ((TCCR3C & (1<<FOC3A)) >> FOC3A) )
# define Timer16_get_compare_force_b() ((timer16_selected==TIMER16_1)? \
((TCCR1C & (1<<FOC1B)) >> FOC1B) : ((TCCR3C & (1<<FOC3B)) >> FOC3B) )
# define Timer16_get_compare_force_c() ((timer16_selected==TIMER16_1)? \
((TCCR1C & (1<<FOC1C)) >> FOC1C) : ((TCCR3C & (1<<FOC3C)) >> FOC3C) )
// ----------
# define Timer16_overflow_it_enable() ((timer16_selected==TIMER16_1)? \
(TIMSK1 |= (1<<TOIE1)) : (TIMSK3 |= (1<<TOIE3)) )
# define Timer16_overflow_it_disable() ((timer16_selected==TIMER16_1)? \
(TIMSK1 &= ~(1<<TOIE1)) : (TIMSK3 &= ~(1<<TOIE3)) )
# define Timer16_compare_a_it_enable() ((timer16_selected==TIMER16_1)? \
(TIMSK1 |= (1<<OCIE1A)) : (TIMSK3 |= (1<<OCIE3A)) )
# define Timer16_compare_a_it_disable() ((timer16_selected==TIMER16_1)? \
(TIMSK1 &= ~(1<<OCIE1A)) : (TIMSK3 &= ~(1<<OCIE3A)) )
# define Timer16_compare_b_it_enable() ((timer16_selected==TIMER16_1)? \
(TIMSK1 |= (1<<OCIE1B)) : (TIMSK3 |= (1<<OCIE3B)) )
# define Timer16_compare_b_it_disable() ((timer16_selected==TIMER16_1)? \
(TIMSK1 &= ~(1<<OCIE1B)) : (TIMSK3 &= ~(1<<OCIE3B)) )
# define Timer16_compare_c_it_enable() ((timer16_selected==TIMER16_1)? \
(TIMSK1 |= (1<<OCIE1C)) : (TIMSK3 |= (1<<OCIE3C)) )
# define Timer16_compare_c_it_disable() ((timer16_selected==TIMER16_1)? \
(TIMSK1 &= ~(1<<OCIE1C)) : (TIMSK3 &= ~(1<<OCIE3C)) )
# define Timer16_capture_it_enable() ((timer16_selected==TIMER16_1)? \
(TIMSK1 |= (1<<ICIE1)) : (TIMSK3 |= (1<<ICIE3)) )
# define Timer16_capture_it_disable() ((timer16_selected==TIMER16_1)? \
(TIMSK1 &= ~(1<<ICIE1)) : (TIMSK3 &= ~(1<<ICIE3)) )
# define Timer16_get_overflow_it_mask() ((timer16_selected==TIMER16_1)? \
((TIMSK1 & (1<<TOIE1)) >> TOIE1) : ((TIMSK3 & (1<<TOIE3)) >> TOIE3) )
# define Timer16_get_compare_a_it_mask() ((timer16_selected==TIMER16_1)? \
((TIMSK1 & (1<<OCIE1A)) >> OCIE1A) : ((TIMSK3 & (1<<OCIE3A)) >> OCIE3A) )
# define Timer16_get_compare_b_it_mask() ((timer16_selected==TIMER16_1)? \
((TIMSK1 & (1<<OCIE1B)) >> OCIE1B) : ((TIMSK3 & (1<<OCIE3B)) >> OCIE3B) )
# define Timer16_get_compare_c_it_mask() ((timer16_selected==TIMER16_1)? \
((TIMSK1 & (1<<OCIE1C)) >> OCIE1C) : ((TIMSK3 & (1<<OCIE3C)) >> OCIE3C) )
# define Timer16_get_capture_it_mask() ((timer16_selected==TIMER16_1)? \
((TIMSK1 & (1<<ICIE1)) >> ICIE1) : ((TIMSK3 & (1<<ICIE3)) >> ICIE3) )
// ----------
# define Timer16_clear_overflow_it() ((timer16_selected==TIMER16_1)? \
(TIFR1 |= (1<<TOV1)) : (TIFR3 |= (1<<TOV3)) )
# define Timer16_clear_compare_a_it() ((timer16_selected==TIMER16_1)? \
(TIFR1 |= (1<<OCF1A)) : (TIFR3 |= (1<<OCF3A)) )
# define Timer16_clear_compare_b_it() ((timer16_selected==TIMER16_1)? \
(TIFR1 |= (1<<OCF1B)) : (TIFR3 |= (1<<OCF3B)) )
# define Timer16_clear_compare_c_it() ((timer16_selected==TIMER16_1)? \
(TIFR1 |= (1<<OCF1C)) : (TIFR3 |= (1<<OCF3C)) )
# define Timer16_clear_capture_it() ((timer16_selected==TIMER16_1)? \
(TIFR1 |= (1<<ICF1)) : (TIFR3 |= (1<<ICF3)) )
# define Timer16_get_overflow_it() ((timer16_selected==TIMER16_1)? \
((TIFR1 & (1<<TOV1)) >> TOV1) : ((TIFR3 & (1<<TOV3)) >> TOV3) )
# define Timer16_get_compare_a_it() ((timer16_selected==TIMER16_1)? \
((TIFR1 & (1<<OCF1A)) >> OCF1A) : ((TIFR3 & (1<<OCF3A)) >> OCF3A) )
# define Timer16_get_compare_b_it() ((timer16_selected==TIMER16_1)? \
((TIFR1 & (1<<OCF1B)) >> OCF1B) : ((TIFR3 & (1<<OCF3B)) >> OCF3B) )
# define Timer16_get_compare_c_it() ((timer16_selected==TIMER16_1)? \
((TIFR1 & (1<<OCF1C)) >> OCF1C) : ((TIFR3 & (1<<OCF3C)) >> OCF3C) )
# define Timer16_get_capture_it() ((timer16_selected==TIMER16_1)? \
((TIFR1 & (1<<ICF1)) >> ICF1) : ((TIFR3 & (1<<ICF3)) >> ICF3) )
#else
#error USE_TIMER16 definition is not referenced in "timer16_drv.h" file
#endif
//_____ T I M E R D E F I N I T I O N S ______________________________________
// ---------- Pre-definitions for "conf" field for Timer16_set(get)_mode_output_x(conf) macros
#define TIMER16_COMP_MODE_NORMAL (0)
#define TIMER16_COMP_MODE_TOGGLE (1)
#define TIMER16_COMP_MODE_CLEAR_OC (2)
#define TIMER16_COMP_MODE_SET_OC (3)
#define TIMER16_COMP_MODE_MASK_A (3<<COM1A0)
#define TIMER16_COMP_MODE_MASK_B (3<<COM1B0)
#define TIMER16_COMP_MODE_MASK_C (3<<COM1C0)
// ---------- Pre-definitions for "conf" field for Timer16_set_waveform_mode(conf) macro
#define TIMER16_WGM_NORMAL (0)
#define TIMER16_WGM_CTC_OCR (4)
#define TIMER16_WGM_CTC_ICR (12)
#define TIMER16_WGM_PWM_PC8 (1)
#define TIMER16_WGM_PWM_PC9 (2)
#define TIMER16_WGM_PWM_PC10 (3)
#define TIMER16_WGM_PWM_PC_ICR (10)
#define TIMER16_WGM_PWM_PC_OCR (11)
#define TIMER16_WGM_PWM_PFC_ICR (8)
#define TIMER16_WGM_PWM_PFC_OCR (9)
#define TIMER16_WGM_FAST_PWM8 (5)
#define TIMER16_WGM_FAST_PWM9 (6)
#define TIMER16_WGM_FAST_PWM10 (7)
#define TIMER16_WGM_FAST_PWM_ICR (14)
#define TIMER16_WGM_FAST_PWM_OCR (15)
#define TIMER16_WGM_RA_MASK (3<<WGM10)
#define TIMER16_WGM_RB_MASK (3<<WGM12)
// ---------- Pre-definitions for "value" field for Timer16_set_clock(value) macro
#define TIMER16_NO_CLOCK (0)
#define TIMER16_CLKIO_BY_1 (1)
#define TIMER16_CLKIO_BY_8 (2)
#define TIMER16_CLKIO_BY_64 (3)
#define TIMER16_CLKIO_BY_256 (4)
#define TIMER16_CLKIO_BY_1024 (5)
#define TIMER16_EXT_CLOCK_FALLING_EDGE (6)
#define TIMER16_EXT_CLOCK_RISING_EDGE (7)
#define TIMER16_CLK_MASK (7<<CS10)
//_____ D E C L A R A T I O N S ________________________________________________
//------------------------------------------------------------------------------
// @fn timer16_get_counter
//!
//! This function READ the 16-bit TIMER counter.
//!
//! @warning
//!
//! @param
//!
//! @return 16-bit counter value
//!
extern U16 timer16_get_counter(void);
//------------------------------------------------------------------------------
// @fn timer16_get_capture
//!
//! This function READ the 16-bit TIMER capture register.
//!
//! @warning
//!
//! @param
//!
//! @return 16-bit capture value
//!
extern U16 timer16_get_capture(void);
//______________________________________________________________________________
#endif // _TIMER16_DRV_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -