fix bug in rp2040 SetPeriod implementation

Этот коммит содержится в:
soypat 2023-06-02 20:42:47 -03:00 коммит произвёл Ron Evans
родитель 635d322703
коммит bbe755fb69

Просмотреть файл

@ -260,7 +260,9 @@ func (pwm *pwmGroup) setPeriod(period uint64) error {
maxTop = math.MaxUint16 maxTop = math.MaxUint16
// start algorithm at 95% Top. This allows us to undershoot period with prescale. // start algorithm at 95% Top. This allows us to undershoot period with prescale.
topStart = 95 * maxTop / 100 topStart = 95 * maxTop / 100
milliseconds = 1_000_000_000 nanosecond = 1 // 1e-9 [s]
microsecond = 1000 * nanosecond // 1e-6 [s]
milliseconds = 1000 * microsecond // 1e-3 [s]
// Maximum Period is 268369920ns on rp2040, given by (16*255+15)*8*(1+0xffff)*(1+1)/16 // Maximum Period is 268369920ns on rp2040, given by (16*255+15)*8*(1+0xffff)*(1+1)/16
// With no phase shift max period is half of this value. // With no phase shift max period is half of this value.
maxPeriod = 268 * milliseconds maxPeriod = 268 * milliseconds