找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1754|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)程序?yàn)槭裁磿?huì)卡在定時(shí)器中斷里?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1055885 發(fā)表于 2022-12-5 22:02 來(lái)自觸屏版 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
最近在學(xué)習(xí)步進(jìn)電機(jī)梯形加減速,我把脈沖放到定時(shí)器中斷里,加速是正常的,但就是不能達(dá)到預(yù)設(shè)速度,LED顯示卡在中斷里了,謝謝大家

單片機(jī)源程序如下:
#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 //定時(shí)器0中斷服務(wù)程序
{      
        TH0=(65536-w)/256;
        TL0=(65536-w)%256;

                if(w>=300)//加速
                {
                        w--;
                }
                        M3=1;
                        M3=0;
                D1=0;
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:883242 發(fā)表于 2022-12-5 23:45 | 只看該作者
不是卡住了,而是w=299以后,你沒(méi)有任何處理代碼,所有的值都不變,就有了卡住的效果。
回復(fù)

使用道具 舉報(bào)

板凳
ID:1055885 發(fā)表于 2022-12-6 07:35 來(lái)自觸屏版 | 只看該作者
Hephaestus 發(fā)表于 2022-12-5 23:45
不是卡住了,而是w=299以后,你沒(méi)有任何處理代碼,所有的值都不變,就有了卡住的效果。

299以后不是應(yīng)該進(jìn)入中斷的頻率不變的嗎,固定初值的話400就應(yīng)該達(dá)到預(yù)設(shè)轉(zhuǎn)速的,可是300還沒(méi)有達(dá)到,而且300和2都一樣的轉(zhuǎn)速,讓我百思不得其解

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

地板
ID:308903 發(fā)表于 2022-12-6 08:27 | 只看該作者
叫大個(gè)不叫老朱 發(fā)表于 2022-12-6 07:35
299以后不是應(yīng)該進(jìn)入中斷的頻率不變的嗎,固定初值的話400就應(yīng)該達(dá)到預(yù)設(shè)轉(zhuǎn)速的,可是300還沒(méi)有達(dá)到,而 ...

樓上說(shuō)的沒(méi)錯(cuò)啊,300后,就都不變了,初值 3000,是3MS,吧,那你變成300后,才幾百us,的中斷,感覺(jué)不出來(lái)
回復(fù)

使用道具 舉報(bào)

5#
ID:1055885 發(fā)表于 2022-12-6 08:47 來(lái)自觸屏版 | 只看該作者
1261867136qq 發(fā)表于 2022-12-6 08:27
樓上說(shuō)的沒(méi)錯(cuò)啊,300后,就都不變了,初值 3000,是3MS,吧,那你變成300后,才幾百us,的中斷,感覺(jué)不出 ...

應(yīng)該是幾百微秒一個(gè)脈沖的,但是實(shí)際電機(jī)轉(zhuǎn)速?zèng)]有達(dá)到,而且初值300和2,電機(jī)轉(zhuǎn)速?zèng)]有區(qū)別,如果固定初值在400就應(yīng)該達(dá)到預(yù)設(shè)轉(zhuǎn)速的

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表