标题: C52单片机中用定时器2做中断产生PWM波这样有问题吗? [打印本页]
作者: 丿THnnk丶斌 时间: 2022-3-25 13:48
标题: C52单片机中用定时器2做中断产生PWM波这样有问题吗?
。。。。。。
// 左电机调速
void pwm_out_left_moto(void)
{
if(Left_moto_stop)
{
if(pwm_val_left<=push_val_left)
{
Left_moto_pwm=1; // Left_moto_pwm1=1;
}
else
{
Left_moto_pwm=0; // Left_moto_pwm1=0;
}
if(pwm_val_left>=20)
pwm_val_left=0;
}
else
{
Left_moto_pwm=0; // Left_moto_pwm1=0;
}
}
// 右电机调速
void pwm_out_right_moto(void)
{
if(Right_moto_stop)
{
if(pwm_val_right<=push_val_right)
{
Right_moto_pwm=1; // Right_moto_pwm1=1;
}
else
{
Right_moto_pwm=0; // Right_moto_pwm1=0;
}
if(pwm_val_right>=20)
pwm_val_right=0;
}
else
{
Right_moto_pwm=0; // Right_moto_pwm1=0;
}
}
///*TIMER2中断服务子函数产生PWM信号*/
void timer0()interrupt 5
{
TF2=0;
TH2=0XFc; (65536-1000)/256 //1M定时
TL2=0X18; (65536-1000)%256
time++;
pwm_val_left++;
pwm_val_right++;
pwm_out_left_moto();
pwm_out_right_moto();
EA=1;
ET2=1;
RT2=1;
}
作者: xuyaqi 时间: 2022-3-25 18:45
电机调速,就不要用定时器中断产生PWM,电机速度无法及时调整。
作者: yzwzfyz 时间: 2022-3-26 15:44
所问不是问题的关键。
驱动的原理是什么?服务对象的特性是什么?
清楚了吗?
而后再谈程序。
例如电机从0速到高速是需要时间的,而你的PWM可以瞬间给出一个调整的参数,这样行吗?讨论过没有。
如何加速、减速、控速,理论上先说得过去才行。
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |