欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1970|回復: 4
收起左側

51單片機程序為什么會卡在定時器中斷里?

[復制鏈接]
ID:1055885 發表于 2022-12-5 22:02 來自觸屏版 | 顯示全部樓層 |閱讀模式
最近在學習步進電機梯形加減速,我把脈沖放到定時器中斷里,加速是正常的,但就是不能達到預設速度,LED顯示卡在中斷里了,謝謝大家

單片機源程序如下:
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit M3=P2^0;//脈沖
sbit D1=P1^0;//LED
uchar aa;
uint w,a;

void main()      
{
        w=3000;      
        TMOD=0x01;
        TH0=(65536-w)/256;
        TL0=(65536-w)%256;
        EA=1;                                 
        ET0=1;                                 
        TR0=1;                                          
        while(1)
                 {
                        D1=1;
                }      
}


void timer0() interrupt 1 //定時器0中斷服務程序
{      
        TH0=(65536-w)/256;
        TL0=(65536-w)%256;

                if(w>=300)//加速
                {
                        w--;
                }
                        M3=1;
                        M3=0;
                D1=0;
}
回復

使用道具 舉報

ID:883242 發表于 2022-12-5 23:45 | 顯示全部樓層
不是卡住了,而是w=299以后,你沒有任何處理代碼,所有的值都不變,就有了卡住的效果。
回復

使用道具 舉報

ID:1055885 發表于 2022-12-6 07:35 來自觸屏版 | 顯示全部樓層
Hephaestus 發表于 2022-12-5 23:45
不是卡住了,而是w=299以后,你沒有任何處理代碼,所有的值都不變,就有了卡住的效果。

299以后不是應該進入中斷的頻率不變的嗎,固定初值的話400就應該達到預設轉速的,可是300還沒有達到,而且300和2都一樣的轉速,讓我百思不得其解

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:308903 發表于 2022-12-6 08:27 | 顯示全部樓層
叫大個不叫老朱 發表于 2022-12-6 07:35
299以后不是應該進入中斷的頻率不變的嗎,固定初值的話400就應該達到預設轉速的,可是300還沒有達到,而 ...

樓上說的沒錯啊,300后,就都不變了,初值 3000,是3MS,吧,那你變成300后,才幾百us,的中斷,感覺不出來
回復

使用道具 舉報

ID:1055885 發表于 2022-12-6 08:47 來自觸屏版 | 顯示全部樓層
1261867136qq 發表于 2022-12-6 08:27
樓上說的沒錯啊,300后,就都不變了,初值 3000,是3MS,吧,那你變成300后,才幾百us,的中斷,感覺不出 ...

應該是幾百微秒一個脈沖的,但是實際電機轉速沒有達到,而且初值300和2,電機轉速沒有區別,如果固定初值在400就應該達到預設轉速的

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表