求助LPC1768 计数器的问题

2019-03-25 20:12发布

小弟,最近正在学习LPC1768,现在学到了定时器,计数器这块,想用定时器0计时,定时器1做计数器,测试外部脉冲的频率,我设定的是P1.19脚为脉冲捕获输入口,部分代码如下:

static counter_init(void)      // 计数器1初始化
{
      SC->PCONP  |= (1<<1)|(1<< 2)|(1<<6);  // 配置外设功率寄存器,timer0,timer1,pwm1使能

    TIM1->CTCR  = 0x00000006;    // 下降沿计数,选择CAP1.1
      TIM1->TC   = 0;                      // 初始计数值位0
      TIM1->CCR = 0;                       //
      TIM1->IR   = 0xff;                    // reset all interrrupts
      TIM1->TCR  = 0x00;                 // 关闭计数器

    GPIO1->FIODIR &= (~(1<<19));     // P1.19做为输入引脚
    PINCON->PINSEL3 |= (3<<6);       // P1.19引脚设置为CAP1.1(捕获输入)
}

static timer0_init(void)                        // 定时器0 初始化
{
     timer0_counter = 0;
    TIM0 -> MR0 = TIME_INTERVAL;       // 定时10ms
    TIM0 -> MCR = 3;                                /* Interrupt and Reset on MR0 */

    NVIC_EnableIRQ(TIMER0_IRQn);        // 开启定时器0定时中断
        
   osc_clk_cnt = 0;
   TIM0 -> TCR = 1;                              // 启动定时器0
   TIM1 -> TCR = 1;                              // 启动计数器1
}



void TIMER0_IRQHandler (void)
{
  TIM0 -> IR = 1;                        /* clear interrupt flag */
  timer0_cnt++;

  if(timer0_cnt == 100){
           
    TIM0->TCR = 0;       // 关闭定时器      
    TIM1->TCR =  0;      // 关闭计数器

    osc_clk_cnt = TIM1->TC;        // 提取计数值
    timer0_cnt = 0;
  }

}


我用串口打印出读出的计数值,发现计数器是计的内部时钟(PCLK)的脉冲,没有计数引脚的脉冲,一直没弄明白是为什么,请大侠来点拨一下,小弟不盛感激!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。