嵌入式学习小组
直播中

河神大人

8年用户 1515经验值
擅长:电源/新能源
私信 关注

M051 Time Capture捕获的值都为0的原因?


  • int main(void)
  • {

  •         volatile uint32_t u32InitCount;


  •     SYS_Init();
  •     /* Init UART0 for printf */
  •     UART0_Init();
  •                 PWM_Init();
  •                 Timer_Init();


  •                 /*允许时钟输出*/
  •                 CLK_EnableCKO( CLK_CLKSEL2_FRQDIV_S_HXT, 1, 1);

  •                 PWM_Start(PWMA,1);
  •                  u32InitCount = g_au32TMRINTCount[0] = 0;

  •                 TIMER_Start(TIMER0);
  •                 TIMER_Start(TIMER3);


  •           printf("*** TEST***\n\n");
  • #if 1
  •                 while(g_au32TMRINTCount[0] <= 10)
  •     {
  •         if(g_au32TMRINTCount[0] != u32InitCount)
  •         {
  •             printf("[%2d]-%d\n\n", g_au32TMRINTCount[0], TIMER_GetCaptureData(TIMER0));
  •             u32InitCount = g_au32TMRINTCount[0];
  •         }
  •     }
  • #endif
  •     /* Stop Timer0, Timer1 and Timer3 counting */
  •     TIMER_Close(TIMER0);
  •    // TIMER_Close(TIMER1);
  •     TIMER_Close(TIMER3);

  •     printf("*** PASS ***\n\n");

  •     while(1);
  • }


回帖(1)

杨平

2024-5-23 17:33:50
p;CLK_EnableCKO(CLK_CLKSEL1_CLKOSEL_HCLK, 1);    /*捕获计数值*/   while(1)    {               u32InitCount = TIMER_GetCaptureData(TIMER0);               printf("Count value: %dn", u32InitCount);    }      }

可能的原因是定时器没有启动或者未正确配置。请确保你已正确配置定时器,并且启动了定时器模块。另外,建议检查计数模式是否正确,在检测到边沿时是否抓取了计数值。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分