找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1337|回复: 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;
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
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,的中断,感觉不出来
回复

使用道具 举报

5#
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 单片机教程网

快速回复 返回顶部 返回列表