+ Post New Thread
Results 1 to 8 of 8
  1. #1
    Newbie level 4
    Points: 262, Level: 3

    Join Date
    Feb 2018
    Posts
    7
    Helped
    0 / 0
    Points
    262
    Level
    3

    Sample code to count the external input signal using counter.

    I have stm32f4xx discovery board and atollic compiler

    I am looking sample code to count external digital input signal

    I have been tried some code but couldn't get success

    anybody have working code or can help me to get sample code

    •   AltAdvertisment

        
       

  2. #2
    Super Moderator
    Points: 73,784, Level: 66
    Achievements:
    7 years registered
    Awards:
    Most Frequent Poster 3rd Helpful Member

    Join Date
    Apr 2014
    Posts
    14,972
    Helped
    3411 / 3411
    Points
    73,784
    Level
    66

    Re: Sample code to count the external input signal using counter.

    Hi,

    We don't know the frequency, nor the desired bit width of the counter...
    Nor do we know whether you want the hardware to count pulses, or per software via interrupt, or software using polling mode.

    I'd use a timer/counter.
    Just set up an input as counter clock.
    And set up the timer/counter periferal.
    No counting software needed.

    Don't ask others to provide software in this forum. Show your documented code and we will help you to rectify the problem.

    Klaus
    Please don´t contact me via PM, because there is no time to respond to them. No friend requests. Thank you.



  3. #3
    Super Moderator
    Points: 28,982, Level: 41
    andre_teprom's Avatar
    Join Date
    Nov 2006
    Location
    Brazil
    Posts
    8,630
    Helped
    1096 / 1096
    Points
    28,982
    Level
    41
    Blog Entries
    8

    Re: Sample code to count the external input signal using counter.

    I have been tried some code but couldn't get success
    anybody have working code or can help me
    WRONG value, or NO value?
    --------------------------------------------------------------------------------------------------
    Part of the world that you live in, You are the part that you're giving ( Renaissance )



    •   AltAdvertisment

        
       

  4. #4
    Newbie level 4
    Points: 262, Level: 3

    Join Date
    Feb 2018
    Posts
    7
    Helped
    0 / 0
    Points
    262
    Level
    3

    Re: Sample code to count the external input signal using counter.

    Quote Originally Posted by KlausST View Post
    Hi,

    We don't know the frequency, nor the desired bit width of the counter...
    Nor do we know whether you want the hardware to count pulses, or per software via interrupt, or software using polling mode.Klaus

    I am new for STM32F407 board
    The system clock. in link https://sites.google.com/site/johnkn.../clocks/clk407

    The STM32F407 microcontroller system clock can come from one of three sources:

    The input to the PLL will be either HSI or HSE
    For the STM32F407 used in the Discovery board HSI = 16MHz.
    For the STM32F407 used in the Discovery board HSE = 8MHz.

    I want to use hardeare counter to count external pulses



  5. #5
    Newbie level 4
    Points: 262, Level: 3

    Join Date
    Feb 2018
    Posts
    7
    Helped
    0 / 0
    Points
    262
    Level
    3

    Re: Sample code to count the external input signal using counter.

    I am new for this board I am using stm32f407

    here is discription of frequencey in the given link

    https://stm32f4-discovery.net/2015/0...2f4xx-devices/

    tutorialhttps://letanphuc.net/2015/06/stm32f...nter-tutorial/



  6. #6
    Super Moderator
    Points: 28,982, Level: 41
    andre_teprom's Avatar
    Join Date
    Nov 2006
    Location
    Brazil
    Posts
    8,630
    Helped
    1096 / 1096
    Points
    28,982
    Level
    41
    Blog Entries
    8

    Re: Sample code to count the external input signal using counter.

    I have been tried some code but couldn't get success
    So far you did not show any code.
    Obviously, we`re expecting to see your code instead of redirect links.
    --------------------------------------------------------------------------------------------------
    Part of the world that you live in, You are the part that you're giving ( Renaissance )



    •   AltAdvertisment

        
       

  7. #7
    Full Member level 6
    Points: 2,170, Level: 10

    Join Date
    Aug 2016
    Posts
    369
    Helped
    55 / 55
    Points
    2,170
    Level
    10

    Re: Sample code to count the external input signal using counter.

    Show the code you wrote before do your mistakes can be pointed out. You also have to consider a lot of other things. For instance, if the pulses are generated by means of a switch, then you have to use some denouncing technique...and so on.

    Give a clear description of how the signal is generated and how it is supplied to.the microcontroller.
    -------------
    --Akanimo.



  8. #8
    Newbie level 4
    Points: 262, Level: 3

    Join Date
    Feb 2018
    Posts
    7
    Helped
    0 / 0
    Points
    262
    Level
    3

    Re: Sample code to count the external input signal using counter.

    Quote Originally Posted by andre_teprom View Post
    So far you did not show any code.
    Obviously, we`re expecting to see your code instead of redirect links.
    following are the example code

    Code:
    /**
    
    
    /* Includes ------------------------------------------------------------------*/
    #include "main.h"
    
    /** @addtogroup STM32F4_Discovery_Peripheral_Examples
      * @{
      */
    
    /** @addtogroup SysTick_Example
      * @{
      */ 
    
    /* Private typedef -----------------------------------------------------------*/
    /* Private define ------------------------------------------------------------*/
    /* Private macro -------------------------------------------------------------*/
    /* Private variables ---------------------------------------------------------*/
    GPIO_InitTypeDef GPIO_InitStructure;
    static __IO uint32_t TimingDelay;
    
    /* Private function prototypes -----------------------------------------------*/
    void Delay(__IO uint32_t nTime);
    
    /* Private functions ---------------------------------------------------------*/
    
    /**
      * @brief   Main program
      * @param  None
      * @retval None
      */
    int main(void)
    {
      /*!< At this stage the microcontroller clock setting is already configured, 
           this is done through SystemInit() function which is called from startup
           file (startup_stm32f4xx.s) before to branch to application main.
           To reconfigure the default setting of SystemInit() function, refer to
            system_stm32f4xx.c file
         */     
           
      /* Initialize Leds mounted on STM32F4-Discovery board */
      STM_EVAL_LEDInit(LED4);
      STM_EVAL_LEDInit(LED3);
      STM_EVAL_LEDInit(LED5);
      STM_EVAL_LEDInit(LED6);
    
      /* Turn on LED4 and LED5 */
      STM_EVAL_LEDOn(LED4);
      STM_EVAL_LEDOn(LED5);
    
      /* Setup SysTick Timer for 1 msec interrupts.
         ------------------------------------------
        1. The SysTick_Config() function is a CMSIS function which configure:
           - The SysTick Reload register with value passed as function parameter.
           - Configure the SysTick IRQ priority to the lowest value (0x0F).
           - Reset the SysTick Counter register.
           - Configure the SysTick Counter clock source to be Core Clock Source (HCLK).
           - Enable the SysTick Interrupt.
           - Start the SysTick Counter.
        
        2. You can change the SysTick Clock source to be HCLK_Div8 by calling the
           SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8) just after the
           SysTick_Config() function call. The SysTick_CLKSourceConfig() is defined
           inside the misc.c file.
    
        3. You can change the SysTick IRQ priority by calling the
           NVIC_SetPriority(SysTick_IRQn,...) just after the SysTick_Config() function 
           call. The NVIC_SetPriority() is defined inside the core_cm4.h file.
    
        4. To adjust the SysTick time base, use the following formula:
                                
             Reload Value = SysTick Counter Clock (Hz) x  Desired Time base (s)
        
           - Reload Value is the parameter to be passed for SysTick_Config() function
           - Reload Value should not exceed 0xFFFFFF
       */
      if (SysTick_Config(SystemCoreClock / 1000))
      { 
        /* Capture error */ 
        while (1);
      }
    
      while (1)
      {
        /* Toggle LED3 and LED6 */
        STM_EVAL_LEDToggle(LED3);
        STM_EVAL_LEDToggle(LED6);
    
        /* Insert 50 ms delay */
        Delay(50);
    
        /* Toggle LED4 and LED5 */
        STM_EVAL_LEDToggle(LED4);
        STM_EVAL_LEDToggle(LED5);
    
        /* Insert 100 ms delay */
        Delay(100);
      }
    }
    
    /**
      * @brief  Inserts a delay time.
      * @param  nTime: specifies the delay time length, in milliseconds.
      * @retval None
      */
    void Delay(__IO uint32_t nTime)
    { 
      TimingDelay = nTime;
    
      while(TimingDelay != 0);
    }
    
    /**
      * @brief  Decrements the TimingDelay variable.
      * @param  None
      * @retval None
      */
    void TimingDelay_Decrement(void)
    {
      if (TimingDelay != 0x00)
      { 
        TimingDelay--;
      }
    }
    
    #ifdef  USE_FULL_ASSERT
    
    /**
      * @brief  Reports the name of the source file and the source line number
      *         where the assert_param error has occurred.
      * @param  file: pointer to the source file name
      * @param  line: assert_param error line source number
      * @retval None
      */
    void assert_failed(uint8_t* file, uint32_t line)
    { 
      /* User can add his own implementation to report the file name and line number,
         ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
    
      /* Infinite loop */
      while (1)
      {
      }
    }
    #endif
    I want to modified code to count external event. I have one digital sensor that count object so when 100 count complete ring alaram

    There are other way to do but I want to use only hardware timer for this purpose so when timer goes from 0 to 100 alram should be ring

    main aim to learn counter of stm32f4xx



--[[ ]]--