Skip to content

TCx PWM not working correctly #52

@josephduchesne

Description

@josephduchesne

I'm trying to use pwm() on TC4 (D6 on the Seeduino Xiao), but the duty cycle is being calculated incorrectly in wiring_pwm.cpp line 271:

duty = mapResolution(duty, 10, 16);

For samd51 TCx and TCCx, as well as SAMD21 TCCx, it's using:

duty = map(duty, 0, (1<<PWM_API_RESOLUTION), 0, period);

The result is that the counter (in my case duty period = 2000) is being incorrectly.

I've changed the line to match the others and it works fine for my single use case.

@deanm1278 since this was in your original PR, any idea why TCx is treated differently?

Metadata

Metadata

Assignees

Labels

ArduinoCore-samdLabel for ArduinoCore-samdUAYUnassigned yet

Type

No type
No fields configured for issues without a type.

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions