|
|
|
@ -200,7 +200,10 @@ void set_pwm_frequency(const pin_t pin, int f_desired) {
|
|
|
|
|
res = res_temp_fast;
|
|
|
|
|
j = i;
|
|
|
|
|
// Set the Wave Generation Mode to FAST PWM
|
|
|
|
|
wgm = timer.n == 2 ? TERN(USE_OCR2A_AS_TOP, WGM2_FAST_PWM_OCR2A, WGM2_FAST_PWM) : WGM_FAST_PWM_ICRn;
|
|
|
|
|
if (timer.n == 2)
|
|
|
|
|
wgm = TERN(USE_OCR2A_AS_TOP, WGM2_FAST_PWM_OCR2A, WGM2_FAST_PWM);
|
|
|
|
|
else
|
|
|
|
|
wgm = WGM_FAST_PWM_ICRn;
|
|
|
|
|
}
|
|
|
|
|
// If PHASE CORRECT values are closes to desired f
|
|
|
|
|
else if (f_phase_diff < f_diff) {
|
|
|
|
@ -208,7 +211,10 @@ void set_pwm_frequency(const pin_t pin, int f_desired) {
|
|
|
|
|
res = res_temp_phase_correct;
|
|
|
|
|
j = i;
|
|
|
|
|
// Set the Wave Generation Mode to PWM PHASE CORRECT
|
|
|
|
|
wgm = timer.n == 2 ? TERN(USE_OCR2A_AS_TOP, WGM2_PWM_PC_OCR2A, WGM2_PWM_PC) : WGM_PWM_PC_ICRn;
|
|
|
|
|
if (timer.n == 2)
|
|
|
|
|
wgm = TERN(USE_OCR2A_AS_TOP, WGM2_PWM_PC_OCR2A, WGM2_FAST_PWM);
|
|
|
|
|
else
|
|
|
|
|
wgm = WGM_PWM_PC_ICRn;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|