फिलहाल मैं दालों (बढ़ते किनारों) को गिनने के लिए stm32f4 - डिस्कवरी बोर्ड पर TIM2 का उपयोग करता हूं। मैं बढ़ते किनारों के लिए थ्रेसहोल्ड को कैसे समायोजित कर सकता हूं? मैं 1 वी दालों को गिनना चाहता हूं। फिलहाल सिर्फ 2V दालों को गिनना संभव है। मैं दस्तावेज़ीकरण में इसके बारे में कुछ नहीं ढूंढ पा रहा हूं।

मेरे टाइमर फ़ंक्शन का कोड यहां दिया गया है।

void timer_2_pulse_counter_gpioa1_Init(){
    RCC->AHB1ENR |= 0x01; // 1: IO port A clock enabled
    //RCC->AHB1ENR |= 0x10; // 1: IO port E clock enabled

    // APB1 peripheral reset register
    RCC->APB1ENR |= 0x01; // 1: enable TIM2

    // GPIO port mode register (GPIOx_MODER)
    GPIOA->MODER |= 0x00000008; // 10: Alternate function mode PA1 => AF mode
    GPIOA->AFR[0] |= 0x00000010; // 1000: Must refer to AF1 (alternate function for TIM1/ TIm2)
    GPIOA->PUPDR |= 0x00000008; // Sets pull down resistor for PA1

    // CCMR!: capture/compare mode register 1
    TIM2->CCMR1 |= 0x0100; // CC2 channel is configured as input, IC2 is mapped on TI2

    // SMCR: Slave Mode control register
    TIM2->SMCR |= 0x0007; // Bits[2:0]  111: External Clock Mode 1 - Rising edges of the selected trigger clock the counter.
    TIM2->SMCR |= 0x0060; // Bits[6:4] 110: selected Trigger: Filtered Timer Input 2 (TI2FP2)

    TIM2->ARR = 0xFFFF; // Set the timer reset on the highest possible value

    TIM2->CR1 |= 0x0001; //0001 Enable Timer
}

आपके समर्थन के लिए अग्रिम धन्यवाद!

0
max_keller 18 अप्रैल 2020, 15:46

1 उत्तर

सबसे बढ़िया उत्तर

प्रोग्रामर स्तर द्वारा निर्धारित विशेष वोल्टेज पर डिजिटल इनपुट "ट्रिगर" नहीं कर सकता है। लेकिन आप इसे ADC "एनालॉग वॉचडॉग" मोड का उपयोग करके एनालॉग मोड में उपयोग कर सकते हैं।

यदि आपके माइक्रो में बिल्ट इन तुलनित्र है (कई STM32Fxxxx में एक है) तो आप इसका उपयोग "ट्रिगर" वोल्टेज सेट करने के लिए कर सकते हैं।

1
0___________ 20 अप्रैल 2020, 09:27