ICARUS OS (Intelligent Cooperative Architecture for Real-time Unified Systems) 0.1.0
Preemptive Real-Time Operating System for ARM Cortex-M7
Loading...
Searching...
No Matches
timer.c
Go to the documentation of this file.
1/* USER CODE BEGIN Header */
19/* USER CODE END Header */
20/* Includes ------------------------------------------------------------------*/
21#include "bsp/timer.h"
22#include "bsp/error.h"
23
24/* USER CODE BEGIN 0 */
25
26/* USER CODE END 0 */
27
28TIM_HandleTypeDef htim1;
29
30/* TIM1 init function */
31void MX_TIM1_Init(void)
32{
33
34 /* USER CODE BEGIN TIM1_Init 0 */
35
36 /* USER CODE END TIM1_Init 0 */
37
38 TIM_MasterConfigTypeDef sMasterConfig = {0};
39 TIM_OC_InitTypeDef sConfigOC = {0};
40 TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig = {0};
41
42 /* USER CODE BEGIN TIM1_Init 1 */
43
44 /* USER CODE END TIM1_Init 1 */
45 htim1.Instance = TIM1;
46 htim1.Init.Prescaler = 12-1;
47 htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
48 htim1.Init.Period = 1000-1;
49 htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
50 htim1.Init.RepetitionCounter = 0;
51 htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
52 if (HAL_TIM_PWM_Init(&htim1) != HAL_OK)
53 {
55 }
56 sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
57 sMasterConfig.MasterOutputTrigger2 = TIM_TRGO2_RESET;
58 sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
59 if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
60 {
62 }
63 sConfigOC.OCMode = TIM_OCMODE_PWM1;
64 sConfigOC.Pulse = 0;
65 sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
66 sConfigOC.OCNPolarity = TIM_OCNPOLARITY_LOW;
67 sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
68 sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET;
69 sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;
70 if (HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
71 {
73 }
74 sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE;
75 sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE;
76 sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF;
77 sBreakDeadTimeConfig.DeadTime = 0;
78 sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE;
79 sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH;
80 sBreakDeadTimeConfig.BreakFilter = 0;
81 sBreakDeadTimeConfig.Break2State = TIM_BREAK2_DISABLE;
82 sBreakDeadTimeConfig.Break2Polarity = TIM_BREAK2POLARITY_HIGH;
83 sBreakDeadTimeConfig.Break2Filter = 0;
84 sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE;
85 if (HAL_TIMEx_ConfigBreakDeadTime(&htim1, &sBreakDeadTimeConfig) != HAL_OK)
86 {
88 }
89 /* USER CODE BEGIN TIM1_Init 2 */
90
91 /* USER CODE END TIM1_Init 2 */
93
94}
95
96void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* tim_pwmHandle)
97{
98
99 if(tim_pwmHandle->Instance==TIM1)
100 {
101 /* USER CODE BEGIN TIM1_MspInit 0 */
102
103 /* USER CODE END TIM1_MspInit 0 */
104 /* TIM1 clock enable */
105 __HAL_RCC_TIM1_CLK_ENABLE();
106 /* USER CODE BEGIN TIM1_MspInit 1 */
107
108 /* USER CODE END TIM1_MspInit 1 */
109 }
110}
111void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
112{
113
114 GPIO_InitTypeDef GPIO_InitStruct = {0};
115 if(timHandle->Instance==TIM1)
116 {
117 /* USER CODE BEGIN TIM1_MspPostInit 0 */
118
119 /* USER CODE END TIM1_MspPostInit 0 */
120
121 __HAL_RCC_GPIOE_CLK_ENABLE();
125 GPIO_InitStruct.Pin = GPIO_PIN_10;
126 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
127 GPIO_InitStruct.Pull = GPIO_NOPULL;
128 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
129 GPIO_InitStruct.Alternate = GPIO_AF1_TIM1;
130 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
131
132 /* USER CODE BEGIN TIM1_MspPostInit 1 */
133
134 /* USER CODE END TIM1_MspPostInit 1 */
135 }
136
137}
138
139void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* tim_pwmHandle)
140{
141
142 if(tim_pwmHandle->Instance==TIM1)
143 {
144 /* USER CODE BEGIN TIM1_MspDeInit 0 */
145
146 /* USER CODE END TIM1_MspDeInit 0 */
147 /* Peripheral clock disable */
148 __HAL_RCC_TIM1_CLK_DISABLE();
149 /* USER CODE BEGIN TIM1_MspDeInit 1 */
150
151 /* USER CODE END TIM1_MspDeInit 1 */
152 }
153}
154
155/* USER CODE BEGIN 1 */
156
157/* USER CODE END 1 */
ICARUS OS Error Handling Interface.
void Error_Handler(void)
System error handler for unrecoverable faults.
Definition error.c:50
TIM_HandleTypeDef htim1
TIM1 handle (PWM output)
Definition timer.c:28
void HAL_TIM_MspPostInit(TIM_HandleTypeDef *timHandle)
Post-initialization for TIM1 GPIO.
Definition timer.c:111
void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef *tim_pwmHandle)
Definition timer.c:139
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *tim_pwmHandle)
Definition timer.c:96
void MX_TIM1_Init(void)
Initialize TIM1 for PWM output.
Definition timer.c:31