找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1177|回复: 3
打印 上一主题 下一主题
收起左侧

关于单片定时器中断的工作有点不理解的地方

[复制链接]
跳转到指定楼层
楼主
ID:719916 发表于 2020-4-19 12:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void T0_time() interrupt 1
{
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        num++;
        if(num=10)
        num=0;
}
上面是我的定时器中断程序,我是想要延时0.5s

我想问下
在主程序TR0=1之后,定时器开始运作,到时间了之后响应中断进入中断程序,那cpu到底是怎样运作的呢
1、   cpu是重装初值,然后一直num+1,一直等待定时器计数完成后再跳出中断返回执行主程序。还是
2、   cpu重装初值,num+1,就直接跳出中断程序,返回执行主程序,知道下一次的中断来临,再去响应进入中断程序。

希望大佬可以教教小白

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:729982 发表于 2020-4-19 17:34 | 只看该作者
第二个没错。中断服务从上到下依次执行完了就跳到主程序记录的地方。直到你下一次开启中断
回复

使用道具 举报

板凳
ID:213173 发表于 2020-4-19 17:36 | 只看该作者
在主程序TR0=1之后,定时器开始运作,CPU与其各干各的事,50ms时间到,定时器向CPU打个招呼(中断请求),CPU做个标记,放下手上的事,执行下面中断任务:
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        num++;
        if(num=10)
                num=0;

CPU完成中断任务后回到标记处接着干原来的事。如此反复持续到掉电或TR0=0。
回复

使用道具 举报

地板
ID:235200 发表于 2020-4-19 21:03 | 只看该作者
第2条基本正确,但跳出中断是该中断程序执行完而又未响应新的中断
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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