JN5139 timer capture 应用问题

2019-07-18 16:28发布

   我写了这样一段程序来使用JN5139的timer capture功能,功能正常;
   问题是如果在timer中断程序中使用了
   vAHI_TimerDisable(E_AHI_TIMER_1);
   在主程序循环中增加了:vAHI_TimerEnable(E_AHI_TIMER_1, 0x00, FALSE, TRUE, FALSE);
    程序就会出现问题,UART端口就不能将采集的数据显示到电脑上(程序有没有执行也不知道)
    求高手指导一下问题出在什么地方?
    我的邮箱:wxh_190211@163.com

程序:
//主程序中的一部分:
    vAHI_TimerEnable(E_AHI_TIMER_1, 0x00, FALSE, TRUE, FALSE);
    vAHI_TimerDIOControl(E_AHI_TIMER_1,TRUE);

    vAHI_Timer1RegisterCallback(vTimer1CallBack);
  while(1)
      {
        vAHI_DioSetOutput(E_AHI_DIO20_INT, 0);
        vAHI_TimerStartCapture(E_AHI_TIMER_1);
        vDelay(0x0ff0000);//延时
       }


//timer中断程序
PRIVATE void vTimer1CallBack(uint32 u32Device, uint32 u32ItemBitmap)
{
    static int8 m=0;
    vAHI_TimerReadCaptureFreeRunning(E_AHI_TIMER_1, &u16Timer1H[m], &u16Timer1L[m]);
    if( m++==4)
    {
        vAHI_TimerStop(E_AHI_TIMER_1);
        //vAHI_TimerDisable(E_AHI_TIMER_1);
        //vAHI_TimerDIOControl(E_AHI_TIMER_1,FALSE);
        vAHI_DioSetOutput(0, E_AHI_DIO20_INT);
        for(m=4;m>0;m--)
        {
            vPrintf(" %x",u16Timer1H[m]);
            vPrintf(" %x",u16Timer1L[m]);
        }
        m=0;
        vPrintf(" ");
    }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
1条回答
老人
2019-07-18 18:01
后来又改了一下程序,发现是这个函数使用后出现问题:
vAHI_TimerDIOControl(E_AHI_TIMER_1,TRUE);
vAHI_TimerDIOControl(E_AHI_TIMER_1,FALSE);
也就是程序必须一直将timer对应的3个管脚定义成timer方式
一旦将这三个管脚定义成GPIO之后再定义成timer就不行了
有没有高手知道什么原因啊?

一周热门 更多>