@@ -207,17 +207,11 @@ static int MAX_PERIOD[] = {
207
207
2000000 ,
208
208
};
209
209
210
- typedef enum {
211
- MODE_PWM = 0 ,
212
- MODE_MTU2
213
- } PWMmode ;
214
-
215
210
typedef enum {
216
211
MTU2_PULSE = 0 ,
217
212
MTU2_PERIOD
218
213
} MTU2Signal ;
219
214
220
- static int pwm_mode = MODE_PWM ;
221
215
static uint16_t init_period_ch1 = 0 ;
222
216
static uint16_t init_period_ch2 = 0 ;
223
217
static uint16_t init_mtu2_period_ch [5 ] = {0 };
@@ -234,7 +228,6 @@ void pwmout_init(pwmout_t* obj, PinName pin) {
234
228
/* PWM by MTU2 */
235
229
int tmp_pwm ;
236
230
237
- pwm_mode = MODE_MTU2 ;
238
231
// power on
239
232
CPGSTBCR3 &= ~(CPG_STBCR3_BIT_MSTP33 );
240
233
@@ -269,7 +262,6 @@ void pwmout_init(pwmout_t* obj, PinName pin) {
269
262
}
270
263
} else {
271
264
/* PWM */
272
- pwm_mode = MODE_PWM ;
273
265
// power on
274
266
CPGSTBCR3 &= ~(CPG_STBCR3_BIT_MSTP30 );
275
267
@@ -306,7 +298,7 @@ void pwmout_write(pwmout_t* obj, float value) {
306
298
uint32_t wk_cycle ;
307
299
uint16_t v ;
308
300
309
- if (pwm_mode == MODE_MTU2 ) {
301
+ if (obj -> pwm >= MTU2_PWM_OFFSET ) {
310
302
/* PWM by MTU2 */
311
303
int tmp_pwm ;
312
304
@@ -347,7 +339,7 @@ float pwmout_read(pwmout_t* obj) {
347
339
uint32_t wk_cycle ;
348
340
float value ;
349
341
350
- if (pwm_mode == MODE_MTU2 ) {
342
+ if (obj -> pwm >= MTU2_PWM_OFFSET ) {
351
343
/* PWM by MTU2 */
352
344
uint32_t wk_pulse ;
353
345
int tmp_pwm ;
@@ -406,7 +398,7 @@ void pwmout_period_us(pwmout_t* obj, int us) {
406
398
uint16_t wk_last_cycle ;
407
399
int max_us = 0 ;
408
400
409
- if (pwm_mode == MODE_MTU2 ) {
401
+ if (obj -> pwm >= MTU2_PWM_OFFSET ) {
410
402
/* PWM by MTU2 */
411
403
int tmp_pwm ;
412
404
uint16_t tmp_tgra ;
@@ -550,7 +542,7 @@ void pwmout_pulsewidth_ms(pwmout_t* obj, int ms) {
550
542
void pwmout_pulsewidth_us (pwmout_t * obj , int us ) {
551
543
float value = 0 ;
552
544
553
- if (pwm_mode == MODE_MTU2 ) {
545
+ if (obj -> pwm >= MTU2_PWM_OFFSET ) {
554
546
/* PWM by MTU2 */
555
547
if (mtu2_period_ch [obj -> ch ] != 0 ) {
556
548
value = (float )us / (float )mtu2_period_ch [obj -> ch ];
0 commit comments