Question
capturing frequency
Posted on February 13, 2013 at 18:40
Hi guys
I'm working on a project, I need to fine filing edge of a stream with 4.000 Mhz frequency.This is my code and IRQ sub program: GPIO_InitTypeDef GPIO_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; /* TIM1 clock enable */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); /* GPIOA clock enable */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE); /* TIM1 channel 2 pin (PE.11) configuration */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 ; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOE, &GPIO_InitStructure); /* Connect TIM pins to AF2 */ GPIO_PinAFConfig(GPIOE, GPIO_PinSource11, GPIO_AF_TIM1); /* Enable the TIM1 global Interrupt */ NVIC_InitStructure.NVIC_IRQChannel = TIM1_CC_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); TIM_ICInitStructure.TIM_Channel = TIM_Channel_2; TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1; TIM_ICInitStructure.TIM_ICFilter = 0; Delay(0x3FFFFF); TIM_ICInit(TIM1, &TIM_ICInitStructure); /* TIM enable counter */ TIM_Cmd(TIM1, DISABLE); //BLF=10144; //BLF=24806; /* Enable the CC2 Interrupt Request */TIM_Cmd(TIM1, ENABLE);TIM_ITConfig(TIM1, TIM_IT_CC2, ENABLE);TIM_ICInit(TIM1, &TIM_ICInitStructure);void TIM1_CC_IRQHandler(void){ Array1[index0] =TIM1->CCR2; if(++index0>=60) index0=0; TIM_ClearITPendingBit(TIM1, TIM_IT_CC2);}but i couldn't measure 4 Mhz.please help me thank you