所以我有这个直流电机,我想把它的速度降低到 25%,所以很明显我通过电机驱动器使用了相位正确的 pwm 来做到这一点,我可以通过 timer1 来做到这一点,但我的助理教授希望我用8 位 timer0,所以我编写了代码并且它运行但完整,所以我的问题是在编写代码之前必须进行一些计算,如果有,这些计算是什么?
注意:电机频率为 100-250 Hz 我正在使用内部频率 1 MHz 和预分频器 1024
#define F_CPU 1000000UL
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRB = DDRB | (1<<PB3); //set OC0 as output pin --> pin where the PWM signal is generated from MC
/*set CS02:0 to 101 to work with 1024 prescaler
set WGM0[1:0] to 01 to work with phase correct,pwm
set COM01:0 to 11 to Set OC0 on compare match when up-counting. Clear OC0 on compare match
when downcounting*/
TCCR0 = 0b00111101;
OCR0 = 64; // 25% DUTY CYCLE
while (1)
{
;
}
}