/*
* Copyright 2017-2020 NXP
* All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
/*******************************************************************************
* Includes
******************************************************************************/
#include "fsl_debug_console.h"
#include "board.h"
#include "bsp_tmr.h"
//#include "fsl_qtmr.h"
#include "pin_mux.h"
#include "clock_config.h"
/*******************************************************************************
* Definitions
******************************************************************************/
/* The QTMR instance/channel used for board */
#define BOARD_QTMR_BASEADDR TMR3
#define BOARD_FIRST_QTMR_CHANNEL kQTMR_Channel_0
#define BOARD_SECOND_QTMR_CHANNEL kQTMR_Channel_1
#define QTMR_ClockCounterOutput kQTMR_ClockCounter0Output
/* Interrupt number and interrupt handler for the QTMR instance used */
#define QTMR_IRQ_ID TMR3_IRQn
#define QTMR_IRQ_HANDLER TMR3_IRQHandler
/* QTMR Clock source divider for Ipg clock source, the value of two macros below should be aligned. */
#define QTMR_PRIMARY_SOURCE (kQTMR_ClockDivide_128)
#define QTMR_CLOCK_SOURCE_DIVIDER (128U)
/* The frequency of the source clock after divided. */
#define QTMR_SOURCE_CLOCK (CLOCK_GetFreq(kCLOCK_IpgClk) / QTMR_CLOCK_SOURCE_DIVIDER)
/*******************************************************************************
* Prototypes
******************************************************************************/
/*******************************************************************************
* Variables
******************************************************************************/
volatile bool qtmrIsrFlag = false;
/*******************************************************************************
* Code
******************************************************************************/
void QTMR_IRQ_HANDLER(void)
{
/* Clear interrupt flag.*/
QTMR_ClearStatusFlags(BOARD_QTMR_BASEADDR, BOARD_SECOND_QTMR_CHANNEL, kQTMR_CompareFlag);
qtmrIsrFlag = true;
}
/*!
* @brief Main function
*/
int main(void)
{
uint32_t i = 0;
qtmr_config_t qtmrConfig;
gpio_pin_config_t gpt_config;
gpt_config.direction = kGPIO_DigitalOutput;
gpt_config.outputLogic = 0;
gpt_config.interruptMode = kGPIO_NoIntmode;
/* Board pin, clock, debug console init */
BOARD_ConfigMPU();
BOARD_InitPins();
BOARD_BootClockRUN();
BOARD_InitDebugConsole();
GPIO_PinInit(GPIO1, 16, &gpt_config);
QTMR_GetDefaultConfig(&qtmrConfig);
/* Initial the input channel. */
qtmrConfig.primarySource = QTMR_PRIMARY_SOURCE;
QTMR_Init(BOARD_QTMR_BASEADDR, BOARD_SECOND_QTMR_CHANNEL, &qtmrConfig);
IpFreq=CLOCK_GetFreq(kCLOCK_IpgClk);
//PlsueCh0Init();
PulseChxStream_Init(TMR3,TMR3_IRQn,100000,4,1,0,0x0A67);
for(i=0;i<100000000;i++);
PulseChxStream_Init(TMR3,TMR3_IRQn,100000,4,1,0,0x0A67);
for(i=0;i<100000000;i++);
PulseChxStream_Init(TMR3,TMR3_IRQn,100000,4,1,0,0x0A67);
for(i=0;i<100000000;i++);
PulseChxStream_Init(TMR3,TMR3_IRQn,100000,4,1,0,0x0A67);
while (1)
{
}
}
我把您的代码移植到qtmr_timer的例程里替换掉源文件,编译下载到板卡仿真,用逻辑分析仪抓取不到波形