PIC12系列 TIMER0定时器初始化设置

2019-04-15 12:01发布

Timer0 模块是 8 位定时器 / 计数器,具有以下特性: • 8 位定时器 / 计数器寄存器 (TMR0) • 8 位预分频器 (与看门狗定时器共用) • 可编程内部或外部时钟源 • 可编程外部时钟边沿选择 • 溢出时产生中断/*************************************************************   @beep_;   TIMER0定时器初始化:void timer0_init(void);   相关寄存器:   TMR0:TIMER0模块寄存器   INTCON:中断寄存器          bit7:GIE  全局中断使能/禁止          bit5:T0IE TiMER0溢出中断使能/禁止          bit2:T0IF TiMER0溢出中断标志必须用软件清除   OPTION_REG:          T0CS:时钟源选择             1:GP2引脚电平跳变             0:FOSC/4          T0SE:GP2时钟源边沿选择          PSA:预分频器分配             1:分给WDT             0:分给TIMER0模块          PS<2:0>预分频比选择位                  value    TIMER0     WDT                  000      1:2        1:1                  001      1:4        1:2                  010      1:8        1:4                  011      1:16       1:8                  ...    2ms/tick:    系统时钟:FOSC=4MHZ      TIMER0时间:1us,TIR0延时2us,8分频.溢出中断.              tick=(0Xff-0X08)*8=2000us.     *************************************************************/ void timer0_init(void) {   GIE=0;     //关闭全局中断   OPTION_REGbits.T0CS=0;   OPTION_REGbits.PSA=0;   OPTION_REGbits.PS=0x02;   TMR0=C_Timer0;//C_Timer0=0x08;   T0IF=0;    //TiMER0溢出中断标志必须用软件清除   T0IE=1;    //TiMER0溢出中断使能   GIE=1;     //打开全局中断 }