打印

nrf51822测高电平持续时间,如何使用计数器?(急)

[复制链接]
4942|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
景天飞雪|  楼主 | 2015-1-20 13:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人单片机初学者,最近在使用nrf51822,想通过中断的方法测某个引脚输入的高电平持续时间,思路是:进入上升沿中断,打开定时器开始计数,下降沿到来时,关闭计数器,读取计数值。但是具体代码实现上出了问题,如下是计数器的初始化及 中断中的处理,

static void TIMER0_init(void)
{
    // Start 16 MHz crystal oscillator.
    NRF_CLOCK->EVENTS_HFCLKSTARTED = 0;
    NRF_CLOCK->TASKS_HFCLKSTART    = 1;

    // Wait for the external oscillator to start.
    while (NRF_CLOCK->EVENTS_HFCLKSTARTED == 0)
    {
        // Do nothing.
    }
           NRF_TIMER0->MODE        = TIMER_MODE_MODE_Counter;        // Set Timer in Counter mode.                        
           NRF_TIMER0->BITMODE     = TIMER_BITMODE_BITMODE_32Bit;    // 32 bit mode.
           NRF_TIMER0->TASKS_CLEAR = 1;                              // clear the task first to be usable for later.     
}

void GPIOTE_IRQHandler(void)
{      
          if(NRF_GPIO->IN & (0x1UL))   //B 的上升沿
           {
                    // 计数开始
        NRF_TIMER0->TASKS_START = 1;  // Start the timer.
           }
          else //B的下降沿
           {
        // 停止计数,获取计数存于        Duration_Time中                        
                          NRF_TIMER0->TASKS_STOP=1;                // Stop timer.                                 
                          NRF_TIMER0->TASKS_CAPTURE[0]  = 1;  //Capture Timer value to CC[0] registers.
                          Duration_Time=NRF_TIMER0->CC[0];         // 持续时间                                   
                          NRF_TIMER0->TASKS_CAPTURE[0]  = 0;  //
     }
        //计数清零         
        NRF_TIMER0->TASKS_CLEAR = 1;                           // clear timer
        //清除B的中断
       // Event causing the interrupt must be cleared. pin0
     if ((NRF_GPIOTE->EVENTS_IN[0] == 1) &&
        (NRF_GPIOTE->INTENSET & GPIOTE_INTENSET_IN0_Msk))
      {
        NRF_GPIOTE->EVENTS_IN[0] = 0;
      }                 
   }
请问,是不是计数的配置及capture出了问题?

相关帖子

沙发
dxj520ly| | 2015-5-21 10:24 | 只看该作者
我的也是这样配置读出计数值为零,不知为何,你的找到问题没有?如何解决的谢谢!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

8

帖子

0

粉丝