STM32F4 Input Capture Kod Açıklaması

Başlatan emretunali, 08 Mart 2016, 19:37:04

emretunali

Merhaba ekte vermiş olduğum capture ayarlarının ne işe yaradığını öğrenebilir miyim ?

Mesela " TIM_TBInitStruct.TIM_Period = 8500; " Period değerinin 8500 olmasının amacı nedir ? Bu ayarların açıklamalarını ögrenmek istiyorum.
Forumda biraz araştırdım. Bazı açıklamalara ulaştım. PSC, ARR register'larını araştırıyorum.
Kodlar Klein hocamın paylaşmış olduğu kodlardan alıntıdır.

Saygılarımla

void init_inputcapture(void)
{
	NVIC_InitTypeDef NVIC_InitStruct;

	TIM_TimeBaseInitTypeDef TIM_TBInitStruct;

	TIM_ICInitTypeDef TIM_ICInitStruct;

    TIM_TBInitStruct.TIM_Period = 8500;
    TIM_TBInitStruct.TIM_Prescaler =0	;
    TIM_TBInitStruct.TIM_ClockDivision = 0;
    TIM_TBInitStruct.TIM_CounterMode = TIM_CounterMode_Up;
    TIM_TimeBaseInit(TIM3, &TIM_TBInitStruct);

    TIM_ICInitStruct.TIM_Channel = TIM_Channel_1;
    TIM_ICInitStruct.TIM_ICFilter = 0x00;
    TIM_ICInitStruct.TIM_ICPolarity = TIM_ICPolarity_Rising;
    TIM_ICInitStruct.TIM_ICPrescaler = TIM_ICPSC_DIV1;
    TIM_ICInitStruct.TIM_ICSelection = TIM_ICSelection_DirectTI;
    TIM_PWMIConfig(TIM3,&TIM_ICInitStruct);

    TIM_SelectSlaveMode(TIM3, TIM_SlaveMode_Reset);
    TIM_SelectInputTrigger(TIM3,TIM_TS_TI1FP1);
    TIM_ITConfig(TIM3,TIM_IT_CC1,ENABLE);

    NVIC_InitStruct.NVIC_IRQChannel = TIM3_IRQn;
    NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStruct);

    TIM_Cmd(TIM3,ENABLE);
}

skara1214

Input captureda period okunabilecek maksimum sayiyi verir. Yani normalde 16 bitlik de 65535 dir maksimum eger bu registera ffff yazarsan ama 30000 yazip yuklersen maksimum 30000 sayar sonra 0 a doner. Normalde 45000 saymasi gerekiyorken sen periodu 30000 yaparsan 15000 okursun
Herkes ölür ama herkes gerçekten yaşamaz