您的位置 首页 汽车

运用内部计时器中止发生PWM调速

当计时器产生第二次中断时,程序会第二次执行中断服务程序,同样首先执行判断语句if(t==0){tmp1=m1;},由于这时t值已经在第一次中断并执

当计时器发生第2次中止时,程序会第2次履行中止服务程序,相同首要履行判别句子if(t==0){tmp1=m1;},因为这时t值现已在第一次中止并履行中止服务程序时被加“1”,也就是说t的值现在等于“1”,因而tmp1=m1句子不被履行,tmp1的值依然坚持它本来的值“70”。接下来履行判别句子if(t=100) t=0;,这时t的值被加“1”后等于“2”,但条件t>=100依然为假而t=0句子不被履行,即t不被置“0”。。

由此咱们也能够看出,时钟发生第2次中止并第2次履行中止服务程序后,各变量的改变是:
m1是给定值“70”天然不会改变;
tmp1的值也坚持“70”不变;
en1的值依然等于“1”;
t的值被加“1”等于“2”。

同理,时钟发生第70次中止并履行中止服务程序时,判别句子if(t==0){tmp1=m1;}依然不被履行,tmp1依然坚持“70”,判别句子if(t=100) t=0;因为t的值此刻为“70”而使条件t>=100依然为假,句子t=0;不被履行而使t值不被置“0”。

当时钟发生第71次中止并履行中止服务程序时,判别句子if(t==0){tmp1=m1;}依然不被履行,tmp1依然坚持“70”,判别句子if(t=100) t=0;因为t>=100为假依然不被履行,而使t值不被置“0”。

同理,当时钟发生第99次中止并履行中止服务程序时,en1依然等于“0”,t的值被加到“99”,而且不被置“0”。

当时钟发生第100次中止并履行中止服务程序时,en1依然等于“0”,t的值被加到“100”,这时判别句子if(t>=100) t=0;因为条件t>=100为真而使t被置“0”。
因为t被置“0”而使得从第101次中止发生并履行中止服务程序时,程序又回到第一次中止时的状况。

至此,因为咱们在句子if(t>=100) t=0;顶用条件t>=100预设了PWM的周期为100次中止,固在100次上述中止完结后,即一个PWM周期完结,一个PWM周期完结后的阶梯图为:

en1=1,70个中止时刻
(从第一次中止开端en1=1使电机得电滚动——————————————(到第71次中止en1跳变为“0”使电

70个中止的时刻) 机停转30个中止的时刻)
——————
en1=0,30个中止时刻

由此能够看出,经过设定在单片机内部时钟发生中止并履行中止服务程序,使电机在一个特定的时刻段内,70%的时刻电机被加电滚动,30%的时刻电机不被加电而中止,从而使电机被减速到其全速的70%。

同理,假如咱们给定m1的值为50,电机的速度将被减速到全速的50%。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/261902.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部