/**
  @page TIM_OCActive TIM_OC_Active
  
  @verbatim
  ******************** (C) COPYRIGHT 2015 STMicroelectronics *******************
  * @file    TIM/TIM_OCActive/readme.txt 
  * @author  MCD Application Team
  * @version V1.1.3
  * @date    15-December-2021
  * @brief   Description of the TIM OC Active example.
  ******************************************************************************
  *
  * Copyright (c) 2015 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
   @endverbatim

@par Example Description 

This example shows how to configure the TIM peripheral to generate four different 
signals with four different delays.

The TIM3CLK frequency is set to SystemCoreClock (Hz), and the objective is
to get TIM3 counter clock at 10 KHz so the Prescaler is computed as following:
   - Prescaler = (TIM3CLK / TIM3 counter clock) - 1
   
SystemCoreClock is set to 72 MHz for stm32f30x Devices.

The TIM3 CCR1 register value is equal to 1000:
TIM3_CH1 delay = CCR1_Val/TIM3 counter clock  = 100 ms
so the TIM3 Channel 1 generates a signal with a delay equal to 100 ms.

The TIM3 CCR2 register value is equal to 50:
TIM3_CH2 delay = CCR2_Val/TIM3 counter clock = 50 ms
so the TIM3 Channel 2 generates a signal with a delay equal to 50 ms.

The TIM3 CCR3 register value is equal to 25:
TIM3_CH3 delay = CCR3_Val/TIM3 counter clock = 25 ms
so the TIM3 Channel 3 generates a signal with a delay equal to 25 ms.

The TIM3 CCR4 register value is equal to 12.5:
TIM3_CH4 delay = CCR4_Val/TIM3 counter clock = 12.5 ms
so the TIM3 Channel 4 generates a signal with a delay equal to 12.5 ms.

The delay correspond to the time difference between PE.08 and  TIM3_CHx signal
rising edges.
 

@par Directory contents 

  - TIM/TIM_OCActive/stm32f30x_conf.h    Library Configuration file
  - TIM/TIM_OCActive/stm32f30x_it.c      Interrupt handlers
  - TIM/TIM_OCActive/stm32f30x_it.h      Interrupt handlers header file
  - TIM/TIM_OCActive/main.c              Main program
  - TIM/TIM_OCActive/main.h              Main program header file
  - TIM/TIM_OCActive/system_stm32f30x.c  stm32f30x system source file
  
@note The "system_stm32f30x.c" is generated by an automatic clock configuration 
      system and can be easily customized to your own configuration. 
      To select different clock setup, use the "STM32F30x_Clock_Configuration_V1.0.0.xls" 
      provided with the AN4152 package available on <a href="http://www.st.com/internet/mcu/family/141.jsp">  ST Microcontrollers </a>
 
@par Hardware and Software environment

  - This example runs on STM32F303xC and STM32F303xE Devices.
  
  - This example has been tested with STMicroelectronics STM32303C-EVAL (STM32F30x)
    evaluation board and can be easily tailored to any other supported device 
    and development board.

  - STM32303C-EVAL Set-up
    - Connect the following pins to an oscilloscope to monitor the different 
      waveforms:
       - Use LED1 connected to PE.08
       - PA.06 (TIM3_CH1)
       - PA.07 (TIM3_CH2)
       - PB.00 (TIM3_CH3)
       - PB.01 (TIM3_CH4)

@par How to use it ? 

In order to make the program work, you must do the following :
 - Copy all source files from this example folder to the template folder under
   Projects\STM32F30x_StdPeriph_Templates
 - Open your preferred toolchain 
 - Add the following files to the project source list
    - Utilities\STM32_EVAL\STM32303C_EVAL\stm32303c_eval.c
 - Rebuild all files and load your image into target memory
 - Run the example


 */
