有关pwm调速的问题,希望高手能帮下忙 谢谢

2019-07-15 19:31发布

void tim1_isr(void) interrupt 3 using 3//pwm波生成
{                                                                                                                                                      
        TH1=(65536-10)/256;                                    
        TL1=(65536-10)%256;         
        a_time1++;
        if(a_time1>=PWM_max) //pwm时间计数
        {
                a_time1=0;               
        }
        if(word)
        {
                if(a_time1<PWM)
                {
                        IN1=1;          //马达(前进1=1 2=0)
                }
                else
                {
                        IN1=0;
                }
        }
        else
        {
                if(a_time1<PWM)
                {
                        IN1=0;          //马达(呛笸1=0 2=1)
                }
                else
                {
                        IN1=1;
                }
        }
}

其中a_time1<PWM这句有什么作用啊?(a_time1是pwm时间计数,PWM表示高电平时间)
用的L298驱动电机
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
164908060
1楼-- · 2019-07-15 20:50
不会程序飘过   
依然落叶飘零
2楼-- · 2019-07-15 21:19
会程序的飘过,a_time1<PWM这句就是调节PWM的。例如要60%占空比。PWM_max就为99.那么PWM的值就应该是60.如果a_time1<60的就输出1.60~99就输出1.如果要改变占空比就改变PWM的值。例外程序中有一个word这个确定是前半部分输出1还是后半部分输出1.
z00
3楼-- · 2019-07-15 22:17
if(a_time1<PWM)
                {
                        IN1=1;          //马达(前进1=1 2=0)
                }
                else
                {
                        IN1=0;
                }
PWM控制的方式 PWM高电平持续的时间电机前进
宛若初闻yy
4楼-- · 2019-07-16 00:44
 精彩回答 2  元偷偷看……
宛若初闻yy
5楼-- · 2019-07-16 06:09
164908060 发表于 2014-6-4 21:58
不会程序飘过

没事  慢慢来撒  我要是初学者,一起加油撒
宛若初闻yy
6楼-- · 2019-07-16 08:06
z00 发表于 2014-6-7 14:06
if(a_time1

不好意思啊  怎么看PWM持续的时间啊  小弟对这个PWM不是很懂啊,能说的详细点吗

一周热门 更多>