加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
timer.h 2.56 KB
一键复制 编辑 原始数据 按行查看 历史
dk鲁晓东 提交于 2019-12-19 22:54 . 定时器驱动
#ifndef __TIMER_H
#define __TIMER_H
#include "config.h"
//这些为Timer操作提供方便
#define T0x12(F) AUXR=F? AUXR|(1<<7):AUXR&(~(1<<7))// timer0 选1---1T 0---12T
#define T0CLKOUT(F) INT_CLKO=F? INT_CLKO|0x01:INT_CLKO&(~0x01)// 时钟输出使能P35
#define T1x12(F) AUXR=F? AUXR|(1<<6):AUXR&(~(1<<6))// timer1 选1---1T 0---12T
#define T1CLKOUT(F) INT_CLKO=F? INT_CLKO|0x02:INT_CLKO&(~0x02)// 时钟输出使能P34
//定时器2
#define ET2(F) IE2=F? IE2|(1<<2):IE2&(~(1<<2))// timer2允许中断
#define CT2(F) AUXR=F? AUXR|(1<<3):AUXR&(~(1<<3))// timer2计数/定时选择
#define T2x12(F) AUXR=F? AUXR|(1<<2):AUXR&(~(1<<2))// timer2 选1---1T 0---12T
#define TR2(F) AUXR=F? AUXR|(1<<4):AUXR&(~(1<<4))// 开始计数
#define T2CLKOUT(F) INT_CLKO=F? INT_CLKO|(1<<2):INT_CLKO&(~(1<<2))// 时钟输出使能P30口
//TH2,TL2为计数器
//定时器3
#define ET3(F) IE2=F? IE2|(1<<5):IE2&(~(1<<5))// timer3允许中断
#define CT3(F) T4T3M=F? T4T3M|(1<<2):T4T3M&(~(1<<2))// timer3计数/定时选择
#define T3x12(F) T4T3M=F?T4T3M|(1<<1):T4T3M&(~(1<<1))// timer3 选1---1T 0---12T
#define TR3(F) T4T3M=F?AUXR|(1<<3):T4T3M&(~(1<<3))// 开始计数
#define T3CLKOUT(F) INT_CLKO=F?INT_CLKO|0x01:INT_CLKO&(~0x01)// 时钟输出使能P04口
//TH3,TL3为计数器
//定时器4
#define ET4(F) IE2=F?IE2|(1<<6):IE2&(~(1<<6))// timer4允许中断
#define CT4(F) T4T3M=F?T4T3M|(1<<6):T4T3M&(~(1<<6))// timer4计数/定时选择
#define T4x12(F) T4T3M=F?T4T3M|(1<<5):T4T3M&(~(1<<5))// timer4 选1---1T 0---12T
#define TR4(F) T4T3M =F?T4T3M |(1<<7):T4T3M &(~(1<<7))// 开始计数
#define T4CLKOUT(F) INT_CLKO=F?INT_CLKO|0x10:INT_CLKO&(~0x10)// 时钟输出使能P06口
//TH4,TL4为计数器
#define Timer0 0
#define Timer1 1
#define Timer2 2
#define Timer3 3
#define Timer4 4
#define TIM_16BitAutoReload 0
#define TIM_16Bit 1
#define TIM_8BitAutoReload 2
//16位自动重装并且不可屏蔽中断
#define TIM_16BitAutoReloadNoMask 3
#define TIM_CLOCK_1T 0
#define TIM_CLOCK_12T 1
#define TIM_CLOCK_Ext 2
typedef struct
{
u8 TIM_Mode; //工作模式, TIM_16BitAutoReload,TIM_16Bit,TIM_8BitAutoReload,TIM_16BitAutoReloadNoMask
u8 TIM_Polity; //优先级设置 PolityHigh,PolityLow
u8 TIM_Interrupt; //中断允许 ENABLE,DISABLE
u8 TIM_ClkSource; //时钟源 TIM_CLOCK_1T,TIM_CLOCK_12T,TIM_CLOCK_Ext
u8 TIM_ClkOut; //可编程时钟输出, ENABLE,DISABLE
u16 TIM_Value; //装载初值
u8 TIM_Run; //是否运行 ENABLE,DISABLE
} TIM_InitTypeDef;
u8 Timer_Inilize(u8 TIM, TIM_InitTypeDef *TIMx);
void Timer_init(void);
#endif
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化