pub fn start(&mut self, timer_config: TimerClockConfig) {
        // write prescaler and period with immediate update method
        self.cfg0().write(|w| unsafe {
            w.prescale().bits(timer_config.prescaler);
            w.period().bits(timer_config.period);
            w.period_upmethod()
                .bits(timer_config.period_updating_method as u8)
        });

        // set timer to continuously run and set the timer working mode
        self.cfg1().write(|w| unsafe {
            w.start().bits(2);
            w.mod_().bits(timer_config.mode as u8)
        });
    }
Apply the given timer configuration.

### Note:
The prescaler and period configuration will be applied immediately by
default and before setting the [`PwmWorkingMode`].
If the timer is already running you might want to call [`Timer::stop`]
and/or [`Timer::set_counter`] first
(if the new period is larger than the current counter value this will
cause weird behavior).

If configured via [`TimerClockConfig::with_period_updating_method`],
another behavior can be applied. Currently, only
[`PeriodUpdatingMethod::Immediately`]
and [`PeriodUpdatingMethod::TimerEqualsZero`] are useful as the sync
method is not yet implemented.

The hardware supports writing these settings in sync with certain timer
events but this HAL does not expose these for now.
esp-hal/src/mcpwm/timer.rs