X-CUBE-SPN1-20150128 example source code for one motor compiled under mbed. Tested OK on Nucleo F401. l6474.cpp is modified from original with defines in l6474_target_config.h to select the original behaviour (motor de-energised when halted), or new mode to continue powering with a (reduced) current in the coils (braking/position hold capability). On F401 avoid using mbed's InterruptIn on pins 10-15 (any port). Beware of other conflicts! L0 & F0 are included but untested.

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers stm32f0xx_it.cpp Source File

stm32f0xx_it.cpp

00001 /**
00002   ******************************************************************************
00003   * @file    Multi/Examples/MotionControl/IHM01A1_ExampleFor1Motor/Src/stm32f0xx_it.c 
00004   * @author  IPC Rennes
00005   * @version V1.5.0
00006   * @date    November 12, 2014
00007   * @brief   Main Interrupt Service Routines.
00008   *          This file provides template for all exceptions handler and 
00009   *          peripherals interrupt service routine.
00010   ******************************************************************************
00011   * @attention
00012   *
00013   * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
00014   *
00015   * Redistribution and use in source and binary forms, with or without modification,
00016   * are permitted provided that the following conditions are met:
00017   *   1. Redistributions of source code must retain the above copyright notice,
00018   *      this list of conditions and the following disclaimer.
00019   *   2. Redistributions in binary form must reproduce the above copyright notice,
00020   *      this list of conditions and the following disclaimer in the documentation
00021   *      and/or other materials provided with the distribution.
00022   *   3. Neither the name of STMicroelectronics nor the names of its contributors
00023   *      may be used to endorse or promote products derived from this software
00024   *      without specific prior written permission.
00025   *
00026   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00027   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00028   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00029   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
00030   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00031   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
00032   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00033   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
00034   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
00035   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00036   *
00037   ******************************************************************************
00038   */
00039 #ifdef TARGET_STM32F0
00040 /* Includes ------------------------------------------------------------------*/
00041 #include "mbed.h"
00042 #include "stm32f0xx_it.h"
00043 #include "motorcontrol.h"
00044     
00045 /** @addtogroup Interrupt_Handlers
00046   * @{
00047   */
00048 
00049 /* Private typedef -----------------------------------------------------------*/
00050 /* Private define ------------------------------------------------------------*/
00051 /* Private macro -------------------------------------------------------------*/
00052 /* Private variables ---------------------------------------------------------*/
00053 extern TIM_HandleTypeDef hTimPwm1;
00054 extern TIM_HandleTypeDef hTimPwm2;
00055 extern TIM_HandleTypeDef hTimPwm3;
00056     
00057 /* Private function prototypes -----------------------------------------------*/
00058 /* Private functions ---------------------------------------------------------*/
00059 
00060 
00061 /******************************************************************************/
00062 /*            Cortex-M0 Processor Exceptions Handlers                         */
00063 /******************************************************************************/
00064 
00065 /**
00066   * @brief   This function handles NMI exception.
00067   * @param  None
00068   * @retval None
00069   */
00070 void NMI_Handler(void)
00071 {
00072 }
00073 
00074 /**
00075   * @brief  This function handles Hard Fault exception.
00076   * @param  None
00077   * @retval None
00078   */
00079 void HardFault_Handler(void)
00080 {
00081   /* Go to infinite loop when Hard Fault exception occurs */
00082   while (1)
00083   {
00084   }
00085 }
00086 
00087 /**
00088   * @brief  This function handles SVCall exception.
00089   * @param  None
00090   * @retval None
00091   */
00092 void SVC_Handler(void)
00093 {
00094 }
00095 
00096 /**
00097   * @brief  This function handles PendSVC exception.
00098   * @param  None
00099   * @retval None
00100   */
00101 void PendSV_Handler(void)
00102 {
00103 }
00104 
00105 /**
00106   * @brief  This function handles SysTick Handler.
00107   * @param  None
00108   * @retval None
00109   */
00110 
00111 // defined in mbed/target/cmsis/stm/stm32f032/.. system_stm32f0xx.c
00112 void SysTick_Handler(void)
00113 {
00114   HAL_IncTick();
00115 }
00116 //
00117 
00118 /******************************************************************************/
00119 /*                 STM32F0xx Peripherals Interrupt Handlers                   */
00120 /*  Add here the Interrupt Handler for the used peripheral(s) (PPP), for the  */
00121 /*  available peripheral interrupt handler's name please refer to the startup */
00122 /*  file (startup_stm32f0xx.s).                                               */
00123 /******************************************************************************/
00124 
00125 /**
00126   * @brief  This function handles interrupt for External lines 4 to 15
00127   * @param  None
00128   * @retval None
00129   */
00130 void EXTI4_15_IRQHandler(void)
00131 {
00132   HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_10);
00133 }
00134 
00135 /**
00136   * @brief  This function handles TIM14 interrupt request.
00137   * @param  None
00138   * @retval None
00139   */
00140 void TIM14_IRQHandler(void)
00141 {
00142   HAL_TIM_IRQHandler(&hTimPwm2);
00143 }
00144 
00145 /**
00146   * @brief  This function handles TIM3 interrupt request.
00147   * @param  None
00148   * @retval None
00149   */
00150 void TIM3_IRQHandler(void)
00151 {
00152   HAL_TIM_IRQHandler(&hTimPwm1);
00153 }
00154 
00155 /**
00156   * @brief  This function handles TIM15 interrupt request.
00157   * @param  None
00158   * @retval None
00159   */
00160 void TIM15_IRQHandler(void)
00161 {
00162   HAL_TIM_IRQHandler(&hTimPwm3);
00163 }
00164 /**
00165   * @brief  This function handles PPP interrupt request.
00166   * @param  None
00167   * @retval None
00168   */
00169 /*void PPP_IRQHandler(void)
00170 {
00171 }*/
00172 
00173 /**
00174   * @}
00175   */ 
00176 #endif
00177 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/