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

- 积分
- 750
- 最后登录
- 2021-1-25
|
参考LPC 54608的SDKdriver_examples\ctimer\simple_match_interrupt 这个例子里 我将主函数修改了一下如下:
#include "fsl_debug_console.h"
#include "board.h"
#include "fsl_ctimer.h"
#include "pin_mux.h"
#include <stdbool.h>
/*******************************************************************************
* Definitions
******************************************************************************/
#define CTIMER CTIMER3 /* Timer 3 */
#define TESTCTIMER CTIMER2 /* Timer 2 */
void taskCTimer_callback(uint32_t flags);
ctimer_callback_t taskctimer_callback_table[] = {
taskCTimer_callback, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
void taskCTimer_callback(uint32_t flags)
{
PRINTF("taskCTimer_callback is doing\r\n");
}
static void TaskCTimerInit(void)
{
ctimer_match_config_t matchConfig;
ctimer_config_t taskCTimerConfig;
SYSCON->ASYNCAPBCTRL = 1;
/* Use 12 MHz clock for some of the Ctimers */
CLOCK_AttachClk(kFRO12M_to_ASYNC_APB);
CTIMER_GetDefaultConfig(&taskCTimerConfig);
CTIMER_Init(TESTCTIMER, &taskCTimerConfig);
matchConfig.enableCounterReset = true;
matchConfig.enableCounterStop = false;
matchConfig.matchValue = 500*12000; //500ms
matchConfig.outControl = kCTIMER_Output_NoAction;
matchConfig.outPinInitState = false;
matchConfig.enableInterrupt = true;
CTIMER_RegisterCallBack(TESTCTIMER, &taskctimer_callback_table[0], kCTIMER_SingleCallback);
CTIMER_SetupMatch(TESTCTIMER, kCTIMER_Match_0, &matchConfig);
CTIMER_StartTimer(TESTCTIMER);
}
int main(void)
{
CLOCK_EnableClock(kCLOCK_InputMux);
CLOCK_AttachClk(BOARD_DEBUG_UART_CLK_ATTACH);
BOARD_InitPins();
BOARD_BootClockFROHF96M();
BOARD_InitDebugConsole();
TaskCTimerInit();
while(1)
{}
}
发现如果采用CTIMER2定时500ms那么定时出来的时间是55ms左右
【2018-04-24 20:01:10:819】taskCTimer_callback is doing
【2018-04-24 20:01:10:874】taskCTimer_callback is doing
【2018-04-24 20:01:10:928】taskCTimer_callback is doing
【2018-04-24 20:01:10:980】taskCTimer_callback is doing
【2018-04-24 20:01:11:034】taskCTimer_callback is doing
【2018-04-24 20:01:11:087】taskCTimer_callback is doing
【2018-04-24 20:01:11:195】taskCTimer_callback is doing
【2018-04-24 20:01:11:247】taskCTimer_callback is doing
【2018-04-24 20:01:11:300】taskCTimer_callback is doing
【2018-04-24 20:01:11:353】taskCTimer_callback is doing
但是我如果用CTMIER3,也就是红色字体换成CTIMER 换成定时时间就是准确的:
大概在500ms左右
【2018-04-24 20:05:25:314】taskCTimer_callback is doing
【2018-04-24 20:05:25:813】taskCTimer_callback is doing
【2018-04-24 20:05:26:312】taskCTimer_callback is doing
【2018-04-24 20:05:26:811】taskCTimer_callback is doing
【2018-04-24 20:05:27:310】taskCTimer_callback is doing
【2018-04-24 20:05:27:808】taskCTimer_callback is doing
【2018-04-24 20:05:28:309】taskCTimer_callback is doing
【2018-04-24 20:05:28:807】taskCTimer_callback is doing
【2018-04-24 20:05:29:306】taskCTimer_callback is doing
【2018-04-24 20:05:29:806】taskCTimer_callback is doing
【2018-04-24 20:05:30:304】taskCTimer_callback is doing
【2018-04-24 20:05:30:804】taskCTimer_callback is doing
|
|