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

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;     //打开全局中断
}

你可能感兴趣的:(PIC12系列 TIMER0定时器初始化设置)