Y2 Kb / Mbed 2 deprecated DCMotorControlShieldV1_0

Dependencies:   mbed

Committer:
y2kb
Date:
Sat Sep 02 06:56:21 2017 +0000
Revision:
2:d45b3a0f19a2
Parent:
0:dffe3a22587d
Reduce CPU clock dependent part so that it can correspond to various boards

Who changed what in which revision?

UserRevisionLine numberNew contents of line
y2kb 0:dffe3a22587d 1 /**
y2kb 0:dffe3a22587d 2 ******************************************************************************
y2kb 0:dffe3a22587d 3 * File Name : TIM.c
y2kb 0:dffe3a22587d 4 * Description : This file provides code for the configuration
y2kb 0:dffe3a22587d 5 * of the TIM instances.
y2kb 0:dffe3a22587d 6 ******************************************************************************
y2kb 0:dffe3a22587d 7 * This notice applies to any and all portions of this file
y2kb 0:dffe3a22587d 8 * that are not between comment pairs USER CODE BEGIN and
y2kb 0:dffe3a22587d 9 * USER CODE END. Other portions of this file, whether
y2kb 0:dffe3a22587d 10 * inserted by the user or by software development tools
y2kb 0:dffe3a22587d 11 * are owned by their respective copyright owners.
y2kb 0:dffe3a22587d 12 *
y2kb 0:dffe3a22587d 13 * Copyright (c) 2017 STMicroelectronics International N.V.
y2kb 0:dffe3a22587d 14 * All rights reserved.
y2kb 0:dffe3a22587d 15 *
y2kb 0:dffe3a22587d 16 * Redistribution and use in source and binary forms, with or without
y2kb 0:dffe3a22587d 17 * modification, are permitted, provided that the following conditions are met:
y2kb 0:dffe3a22587d 18 *
y2kb 0:dffe3a22587d 19 * 1. Redistribution of source code must retain the above copyright notice,
y2kb 0:dffe3a22587d 20 * this list of conditions and the following disclaimer.
y2kb 0:dffe3a22587d 21 * 2. Redistributions in binary form must reproduce the above copyright notice,
y2kb 0:dffe3a22587d 22 * this list of conditions and the following disclaimer in the documentation
y2kb 0:dffe3a22587d 23 * and/or other materials provided with the distribution.
y2kb 0:dffe3a22587d 24 * 3. Neither the name of STMicroelectronics nor the names of other
y2kb 0:dffe3a22587d 25 * contributors to this software may be used to endorse or promote products
y2kb 0:dffe3a22587d 26 * derived from this software without specific written permission.
y2kb 0:dffe3a22587d 27 * 4. This software, including modifications and/or derivative works of this
y2kb 0:dffe3a22587d 28 * software, must execute solely and exclusively on microcontroller or
y2kb 0:dffe3a22587d 29 * microprocessor devices manufactured by or for STMicroelectronics.
y2kb 0:dffe3a22587d 30 * 5. Redistribution and use of this software other than as permitted under
y2kb 0:dffe3a22587d 31 * this license is void and will automatically terminate your rights under
y2kb 0:dffe3a22587d 32 * this license.
y2kb 0:dffe3a22587d 33 *
y2kb 0:dffe3a22587d 34 * THIS SOFTWARE IS PROVIDED BY STMICROELECTRONICS AND CONTRIBUTORS "AS IS"
y2kb 0:dffe3a22587d 35 * AND ANY EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT NOT
y2kb 0:dffe3a22587d 36 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
y2kb 0:dffe3a22587d 37 * PARTICULAR PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY
y2kb 0:dffe3a22587d 38 * RIGHTS ARE DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. IN NO EVENT
y2kb 0:dffe3a22587d 39 * SHALL STMICROELECTRONICS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
y2kb 0:dffe3a22587d 40 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
y2kb 0:dffe3a22587d 41 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
y2kb 0:dffe3a22587d 42 * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
y2kb 0:dffe3a22587d 43 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
y2kb 0:dffe3a22587d 44 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
y2kb 0:dffe3a22587d 45 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
y2kb 0:dffe3a22587d 46 *
y2kb 0:dffe3a22587d 47 ******************************************************************************
y2kb 0:dffe3a22587d 48 */
y2kb 0:dffe3a22587d 49
y2kb 0:dffe3a22587d 50 /* Includes ------------------------------------------------------------------*/
y2kb 0:dffe3a22587d 51 #include "tim.h"
y2kb 0:dffe3a22587d 52
y2kb 0:dffe3a22587d 53 /* USER CODE BEGIN 0 */
y2kb 0:dffe3a22587d 54 /* USER CODE END 0 */
y2kb 0:dffe3a22587d 55
y2kb 0:dffe3a22587d 56 TIM_HandleTypeDef htim3;
y2kb 0:dffe3a22587d 57
y2kb 0:dffe3a22587d 58 /* TIM3 init function */
y2kb 0:dffe3a22587d 59 void MX_TIM3_Init(void)
y2kb 0:dffe3a22587d 60 {
y2kb 0:dffe3a22587d 61 TIM_MasterConfigTypeDef sMasterConfig;
y2kb 0:dffe3a22587d 62 TIM_OC_InitTypeDef sConfigOC;
y2kb 0:dffe3a22587d 63
y2kb 0:dffe3a22587d 64 htim3.Instance = TIM3;
y2kb 0:dffe3a22587d 65 htim3.Init.Prescaler = 0;
y2kb 0:dffe3a22587d 66 htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
y2kb 2:d45b3a0f19a2 67 htim3.Init.Period = TIM_CLOCK_SOURCE_HZ / 20000 - 1;
y2kb 0:dffe3a22587d 68 htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
y2kb 0:dffe3a22587d 69 if (HAL_TIM_PWM_Init(&htim3) != HAL_OK)
y2kb 0:dffe3a22587d 70 {
y2kb 0:dffe3a22587d 71 _Error_Handler(__FILE__, __LINE__);
y2kb 0:dffe3a22587d 72 }
y2kb 0:dffe3a22587d 73
y2kb 0:dffe3a22587d 74 sMasterConfig.MasterOutputTrigger = TIM_TRGO_UPDATE;
y2kb 0:dffe3a22587d 75 sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
y2kb 0:dffe3a22587d 76 if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK)
y2kb 0:dffe3a22587d 77 {
y2kb 0:dffe3a22587d 78 _Error_Handler(__FILE__, __LINE__);
y2kb 0:dffe3a22587d 79 }
y2kb 0:dffe3a22587d 80
y2kb 0:dffe3a22587d 81 sConfigOC.OCMode = TIM_OCMODE_PWM1;
y2kb 0:dffe3a22587d 82 sConfigOC.Pulse = 0;
y2kb 0:dffe3a22587d 83 sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
y2kb 0:dffe3a22587d 84 sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
y2kb 0:dffe3a22587d 85 if (HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
y2kb 0:dffe3a22587d 86 {
y2kb 0:dffe3a22587d 87 _Error_Handler(__FILE__, __LINE__);
y2kb 0:dffe3a22587d 88 }
y2kb 0:dffe3a22587d 89
y2kb 0:dffe3a22587d 90 HAL_TIM_MspPostInit(&htim3);
y2kb 0:dffe3a22587d 91
y2kb 0:dffe3a22587d 92 }
y2kb 0:dffe3a22587d 93
y2kb 0:dffe3a22587d 94 void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* tim_pwmHandle)
y2kb 0:dffe3a22587d 95 {
y2kb 0:dffe3a22587d 96
y2kb 0:dffe3a22587d 97 if(tim_pwmHandle->Instance==TIM3)
y2kb 0:dffe3a22587d 98 {
y2kb 0:dffe3a22587d 99 /* USER CODE BEGIN TIM3_MspInit 0 */
y2kb 0:dffe3a22587d 100
y2kb 0:dffe3a22587d 101 /* USER CODE END TIM3_MspInit 0 */
y2kb 0:dffe3a22587d 102 /* TIM3 clock enable */
y2kb 0:dffe3a22587d 103 __HAL_RCC_TIM3_CLK_ENABLE();
y2kb 0:dffe3a22587d 104 /* USER CODE BEGIN TIM3_MspInit 1 */
y2kb 0:dffe3a22587d 105
y2kb 0:dffe3a22587d 106 /* USER CODE END TIM3_MspInit 1 */
y2kb 0:dffe3a22587d 107 }
y2kb 0:dffe3a22587d 108 }
y2kb 0:dffe3a22587d 109 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
y2kb 0:dffe3a22587d 110 {
y2kb 0:dffe3a22587d 111
y2kb 0:dffe3a22587d 112 GPIO_InitTypeDef GPIO_InitStruct;
y2kb 0:dffe3a22587d 113 if(timHandle->Instance==TIM3)
y2kb 0:dffe3a22587d 114 {
y2kb 0:dffe3a22587d 115 /* USER CODE BEGIN TIM3_MspPostInit 0 */
y2kb 0:dffe3a22587d 116
y2kb 0:dffe3a22587d 117 /* USER CODE END TIM3_MspPostInit 0 */
y2kb 0:dffe3a22587d 118
y2kb 0:dffe3a22587d 119 /**TIM3 GPIO Configuration
y2kb 0:dffe3a22587d 120 PC7 ------> TIM3_CH2
y2kb 0:dffe3a22587d 121 */
y2kb 0:dffe3a22587d 122 GPIO_InitStruct.Pin = PWM_Pin;
y2kb 0:dffe3a22587d 123 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
y2kb 0:dffe3a22587d 124 GPIO_InitStruct.Pull = GPIO_NOPULL;
y2kb 0:dffe3a22587d 125 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
y2kb 0:dffe3a22587d 126 GPIO_InitStruct.Alternate = GPIO_AF2_TIM3;
y2kb 0:dffe3a22587d 127 HAL_GPIO_Init(PWM_GPIO_Port, &GPIO_InitStruct);
y2kb 0:dffe3a22587d 128
y2kb 0:dffe3a22587d 129 /* USER CODE BEGIN TIM3_MspPostInit 1 */
y2kb 0:dffe3a22587d 130
y2kb 0:dffe3a22587d 131 /* USER CODE END TIM3_MspPostInit 1 */
y2kb 0:dffe3a22587d 132 }
y2kb 0:dffe3a22587d 133
y2kb 0:dffe3a22587d 134 }
y2kb 0:dffe3a22587d 135
y2kb 0:dffe3a22587d 136 void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* tim_pwmHandle)
y2kb 0:dffe3a22587d 137 {
y2kb 0:dffe3a22587d 138
y2kb 0:dffe3a22587d 139 if(tim_pwmHandle->Instance==TIM3)
y2kb 0:dffe3a22587d 140 {
y2kb 0:dffe3a22587d 141 /* USER CODE BEGIN TIM3_MspDeInit 0 */
y2kb 0:dffe3a22587d 142
y2kb 0:dffe3a22587d 143 /* USER CODE END TIM3_MspDeInit 0 */
y2kb 0:dffe3a22587d 144 /* Peripheral clock disable */
y2kb 0:dffe3a22587d 145 __HAL_RCC_TIM3_CLK_DISABLE();
y2kb 0:dffe3a22587d 146 /* USER CODE BEGIN TIM3_MspDeInit 1 */
y2kb 0:dffe3a22587d 147
y2kb 0:dffe3a22587d 148 /* USER CODE END TIM3_MspDeInit 1 */
y2kb 0:dffe3a22587d 149 }
y2kb 0:dffe3a22587d 150 }
y2kb 0:dffe3a22587d 151
y2kb 0:dffe3a22587d 152 /* USER CODE BEGIN 1 */
y2kb 0:dffe3a22587d 153
y2kb 0:dffe3a22587d 154 /* USER CODE END 1 */
y2kb 0:dffe3a22587d 155
y2kb 0:dffe3a22587d 156 /**
y2kb 0:dffe3a22587d 157 * @}
y2kb 0:dffe3a22587d 158 */
y2kb 0:dffe3a22587d 159
y2kb 0:dffe3a22587d 160 /**
y2kb 0:dffe3a22587d 161 * @}
y2kb 0:dffe3a22587d 162 */
y2kb 0:dffe3a22587d 163
y2kb 0:dffe3a22587d 164 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/