@@ -185,20 +185,17 @@ void HAL_TIM_OC_MspDeInit(TIM_HandleTypeDef *htim)
185
185
*/
186
186
void HAL_TIM_OC_DelayElapsedCallback (TIM_HandleTypeDef * htim )
187
187
{
188
- uint32_t channel = 0 ;
189
188
stimer_t * obj = get_timer_obj (htim );
190
189
switch (htim -> Channel ) {
191
190
case HAL_TIM_ACTIVE_CHANNEL_1 :
192
- channel = TIM_CHANNEL_1 / 4 ;
193
191
if (obj -> irqHandleOC_CH1 != NULL ) {
194
192
obj -> irqHandleOC_CH1 ();
195
193
}
196
194
if (obj -> irqHandleOC != NULL ) {
197
- obj -> irqHandleOC (obj , channel );
195
+ obj -> irqHandleOC (obj , TIM_CHANNEL_1 );
198
196
}
199
197
break ;
200
198
case HAL_TIM_ACTIVE_CHANNEL_2 :
201
- channel = TIM_CHANNEL_2 / 4 ;
202
199
if (obj -> irqHandleOC_CH2 != NULL ) {
203
200
obj -> irqHandleOC_CH2 ();
204
201
}
@@ -207,13 +204,11 @@ void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim)
207
204
if (obj -> irqHandleOC_CH3 != NULL ) {
208
205
obj -> irqHandleOC_CH3 ();
209
206
}
210
- channel = TIM_CHANNEL_3 / 4 ;
211
207
break ;
212
208
case HAL_TIM_ACTIVE_CHANNEL_4 :
213
209
if (obj -> irqHandleOC_CH4 != NULL ) {
214
210
obj -> irqHandleOC_CH4 ();
215
211
}
216
- channel = TIM_CHANNEL_4 / 4 ;
217
212
break ;
218
213
default :
219
214
break ;
@@ -679,7 +674,7 @@ void TimerPulseInit(stimer_t *obj, uint16_t period, uint16_t pulseWidth, void (*
679
674
#endif
680
675
obj -> irqHandleOC = irqHandle ;
681
676
682
- attachIntHandleOC (obj , NULL , 1 , pulseWidth );
677
+ attachIntHandleOC (obj , NULL , TIM_CHANNEL_1 , pulseWidth );
683
678
}
684
679
685
680
/**
@@ -732,7 +727,12 @@ void setTimerCounter(stimer_t *obj, uint32_t value)
732
727
/**
733
728
* @brief Set the TIM Capture Compare Register value.
734
729
* @param timer_id : id of the timer
735
- * @param channel : TIM Channels to be configured.
730
+ * @param channel : TIM Channel associated with the capture compare register.
731
+ * This parameter can be one of the following values:
732
+ * @arg TIM_CHANNEL_1: TIM Channel 1 selected
733
+ * @arg TIM_CHANNEL_2: TIM Channel 2 selected
734
+ * @arg TIM_CHANNEL_3: TIM Channel 3 selected
735
+ * @arg TIM_CHANNEL_4: TIM Channel 4 selected
736
736
* @retval CRR value.
737
737
*/
738
738
uint32_t getCCRRegister (stimer_t * obj , uint32_t channel )
@@ -744,12 +744,17 @@ uint32_t getCCRRegister(stimer_t *obj, uint32_t channel)
744
744
* @brief Set the TIM Capture Compare Register value.
745
745
* @param timer_id : id of the timer
746
746
* @param channel : TIM Channels to be configured.
747
+ * This parameter can be one of the following values:
748
+ * @arg TIM_CHANNEL_1: TIM Channel 1 selected
749
+ * @arg TIM_CHANNEL_2: TIM Channel 2 selected
750
+ * @arg TIM_CHANNEL_3: TIM Channel 3 selected
751
+ * @arg TIM_CHANNEL_4: TIM Channel 4 selected
747
752
* @param value : register new register.
748
753
* @retval None
749
754
*/
750
755
void setCCRRegister (stimer_t * obj , uint32_t channel , uint32_t value )
751
756
{
752
- __HAL_TIM_SET_COMPARE (& (obj -> handle ), channel * 4 , value );
757
+ __HAL_TIM_SET_COMPARE (& (obj -> handle ), channel , value );
753
758
}
754
759
755
760
/**
@@ -1129,11 +1134,16 @@ void attachIntHandle(stimer_t *obj, void (*irqHandle)(stimer_t *))
1129
1134
* @brief This function will attach timer interrupt to with a particular duty cycle on channel x
1130
1135
* @param timer_id : timer_id_e
1131
1136
* @param irqHandle : interrupt routine to call
1132
- * @param timChannel : timer channel
1137
+ * @param timChannel : TIM Channel to use
1138
+ * This parameter can be one of the following values:
1139
+ * @arg TIM_CHANNEL_1: TIM Channel 1 selected
1140
+ * @arg TIM_CHANNEL_2: TIM Channel 2 selected
1141
+ * @arg TIM_CHANNEL_3: TIM Channel 3 selected
1142
+ * @arg TIM_CHANNEL_4: TIM Channel 4 selected
1133
1143
* @param pulseWidth : phase of the timer where the callback will happen
1134
1144
* @retval None
1135
1145
*/
1136
- void attachIntHandleOC (stimer_t * obj , void (* irqHandle )(void ), uint16_t timChannel , uint16_t pulseWidth )
1146
+ void attachIntHandleOC (stimer_t * obj , void (* irqHandle )(void ), uint32_t timChannel , uint16_t pulseWidth )
1137
1147
{
1138
1148
TIM_OC_InitTypeDef sConfig = {};
1139
1149
TIM_HandleTypeDef * handle = & (obj -> handle );
@@ -1154,27 +1164,27 @@ void attachIntHandleOC(stimer_t *obj, void (*irqHandle)(void), uint16_t timChann
1154
1164
return ;
1155
1165
}
1156
1166
switch (timChannel ) {
1157
- case 1 :
1167
+ case TIM_CHANNEL_1 :
1158
1168
obj -> irqHandleOC_CH1 = irqHandle ;
1159
1169
if (HAL_TIM_OC_ConfigChannel (handle , & sConfig , TIM_CHANNEL_1 ) == HAL_OK ) {
1160
1170
HAL_TIM_OC_Start_IT (handle , TIM_CHANNEL_1 );
1161
1171
}
1162
1172
break ;
1163
- case 2 :
1173
+ case TIM_CHANNEL_2 :
1164
1174
obj -> irqHandleOC_CH2 = irqHandle ;
1165
- if (HAL_TIM_OC_ConfigChannel (handle , & sConfig , TIM_CHANNEL_2 ) ! = HAL_OK ) {
1175
+ if (HAL_TIM_OC_ConfigChannel (handle , & sConfig , TIM_CHANNEL_2 ) = = HAL_OK ) {
1166
1176
HAL_TIM_OC_Start_IT (handle , TIM_CHANNEL_2 );
1167
1177
}
1168
1178
break ;
1169
- case 3 :
1179
+ case TIM_CHANNEL_3 :
1170
1180
obj -> irqHandleOC_CH3 = irqHandle ;
1171
- if (HAL_TIM_OC_ConfigChannel (handle , & sConfig , TIM_CHANNEL_3 ) ! = HAL_OK ) {
1181
+ if (HAL_TIM_OC_ConfigChannel (handle , & sConfig , TIM_CHANNEL_3 ) = = HAL_OK ) {
1172
1182
HAL_TIM_OC_Start_IT (handle , TIM_CHANNEL_3 );
1173
1183
}
1174
1184
break ;
1175
- case 4 :
1185
+ case TIM_CHANNEL_4 :
1176
1186
obj -> irqHandleOC_CH4 = irqHandle ;
1177
- if (HAL_TIM_OC_ConfigChannel (handle , & sConfig , TIM_CHANNEL_4 ) ! = HAL_OK ) {
1187
+ if (HAL_TIM_OC_ConfigChannel (handle , & sConfig , TIM_CHANNEL_4 ) = = HAL_OK ) {
1178
1188
HAL_TIM_OC_Start_IT (handle , TIM_CHANNEL_4 );
1179
1189
}
1180
1190
break ;
0 commit comments