在线时间285 小时
UID3419421
注册时间2017-8-30
NXP金币0
该用户从未签到
高级会员

- 积分
- 750
- 最后登录
- 2021-1-25
|
想用LPC54608的标准定时器CTIMER来做延时函数,参考SDK里的SDK_2.2_LPC54608J512\boards\lpcxpresso54608\driver_examples\ctimer\simple_match这个例程,发现定时超过300ms就溢出。以下代码里我设置matchValue= 500*BUS_CLK_FREQ/1000 ,根据时钟为12M,这里设置的定时值为500*12000000/1000/12000000=500ms.但是实际得出的是150ms左右。这应该是溢出了。请问如何提高定时器的时钟,我在手册里看到好像定时器的时钟不能用FROHF48这些。另外我还想定时us级别,时钟该如何选?SYSCON->ASYNCAPBCTRL = 1;
/* Use 12 MHz clock for some of the Ctimers */
CLOCK_AttachClk(kFRO12M_to_ASYNC_APB);
BOARD_InitPins();
BOARD_BootClockFROHF48M();
BOARD_InitDebugConsole();
PRINTF("CTimer match example to toggle the output on a match\r\n");
CTIMER_GetDefaultConfig(&config);
CTIMER_Init(CTIMER, &config);
matchConfig.enableCounterReset = true;
matchConfig.enableCounterStop = false;
matchConfig.matchValue = 500*BUS_CLK_FREQ/1000;//定时500ms
matchConfig.outControl = kCTIMER_Output_Toggle;
matchConfig.outPinInitState = false;
matchConfig.enableInterrupt = false;
CTIMER_SetupMatch(CTIMER, CTIMER_MAT_OUT, &matchConfig);
CTIMER_StartTimer(CTIMER);
|
|