波形应该是这样的,但是步进电机转速还是上不去,频率给高了,就嗡嗡响不转。 |
chenchuanke 发表于 2021-8-3 09:26 对的 |
dwb123 发表于 2021-8-2 11:39 应该不是改占空比,改的是频率 |
他这个用pwm应该不行,应该是控制一个频率在一定时间内由低到高或者是由高到低的一个过程。步进电机都必须这样控制才不会失步 |
给中断啊,定时中断然后改变占空比就可以了。 |
脉宽调制 |
1. 确定脉冲是高电平有效还是低电平(先假设高电平有效) 2. 确定脉冲的最少有效时间(先假设80us) PWM_H = 65536 - 80;(倒数80us) PWM_L = 0;(倒数65536us) 3. 把定时器设为16位不自动重装 TMOD = 0x01; 4. 确定时器中断中建立反相程序 void T0_time()interrupt 1 { CP=Swap; if(Swap)//bit Swap 反相用 { TH0=PWM_H /256; TL0=PWM_H %256; }else { TH0=PWM_L /256; TL0=PWM_L %256; } Swap = !Swap; } 5. 在main()中慢慢增加PWM_L 的值 |