找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1648|回复: 8
收起左侧

关于单片机中断不执行的问题

[复制链接]
ID:446775 发表于 2020-6-30 16:08 | 显示全部楼层 |阅读模式
大家好
       我现在有个程序,定时器设置的定时时间是1ms,中断服务的运行时间是570us,没有超过定时时间,但是实际运行时发现没有按照设定的定时时间进入中断,它自己70ms进入一次中断,目前不知道是什么原因造成的
,我使用的是定时器T0,然后使用的是模式1
回复

使用道具 举报

ID:548551 发表于 2020-6-30 17:38 | 显示全部楼层
那个单片机? 代码是什么?
回复

使用道具 举报

ID:636538 发表于 2020-7-2 09:15 | 显示全部楼层
单片机的型号是什么,你的定时器初始值怎么设定的例如TH0、TL0、EA、ET0、TMOD等怎么设定的中断怎设定的,
回复

使用道具 举报

ID:282850 发表于 2020-7-3 10:14 | 显示全部楼层
应该先怀疑设置值,再用单个long++测试时间是否对
回复

使用道具 举报

ID:91521 发表于 2020-7-3 10:46 | 显示全部楼层
程序执行时间大于1ms
回复

使用道具 举报

ID:213173 发表于 2020-7-3 10:47 | 显示全部楼层
没有贴程序,只能乱猜,定时器中断不算复杂,只有一点可以确定,是楼主犯错。
回复

使用道具 举报

ID:446775 发表于 2020-7-7 11:03 | 显示全部楼层
单片机型号是89C52,编译后程序显示data = 173.2,xdata = 81,code = 4815,并且编译不通过,这个Memory Model 用的是Small,应该是内存不够用,然后把Memory Model改为Large 就可以了,也能编译通过了,data = 9.5,xdata = 245,code = 6156
回复

使用道具 举报

ID:446775 发表于 2020-7-7 11:04 | 显示全部楼层
f556 发表于 2020-7-3 10:14
应该先怀疑设置值,再用单个long++测试时间是否对

这个是配置函数,检查下也没有问题,应该就是89C52内存不够的问题,使用xdata就可以了
/*配置并启动T0,ms为T0定时时间*/
void ConfigTimer0(unsigned int ms)
{
    unsigned long tmp;                      //临时变量
   
    tmp = 11059200 / 12;                      //定时器计数频率
    tmp = (tmp * ms) / 1000;                  //计算所需的计数值
    tmp = 65536 - tmp;                      //计算定时器重载值
    tmp = tmp + 33;                         //补偿中断响应延时造成的误差,tmp的存储类型是long型,占16位。可以放下初值
    T0RH = (unsigned char)(tmp>>8);       //定时器重载值拆分为高低字节,因为T0RH存储类型是char型,占8位,所以要将tmp高8位右移到低8位给T0RH赋值
    T0RL = (unsigned char)tmp;              //直接取tmp的低8位即可
    TMOD &= 0xF0;                           //清零T0的控制位
    TMOD |= 0x01;                           //配置T0为模式1
    TH0 = T0RH;                             //加载T0重载值
    TL0 = T0RL;                             
    ET0 = 1;                                //使能T0中断
    TR0 = 1;                                //启动T0
}
回复

使用道具 举报

ID:446775 发表于 2020-7-7 11:05 | 显示全部楼层
SKYLAR123 发表于 2020-7-2 09:15
单片机的型号是什么,你的定时器初始值怎么设定的例如TH0、TL0、EA、ET0、TMOD等怎么设定的中断怎设定的,

单片机型号是89C52,应该是data不够用,内存模式改为large就可以了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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