首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 单片机中断问题
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • shuqianyan
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2008-08-21 09:50:20 楼主
    你们好,各位大虾。
    我想问一下51单片机退出串行中断以后,我需要将它马上(当然可以执行2--4条指令)从其他地方执行,如何做(设计)?
    我们在中断前是不知道程序执行到哪了的。
    望大虾指点!QQ:44724697  邮箱:shuqianyan@163.com
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zyzhang365
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-21 10:15:571楼 得分:0
    理论上讲,你是可以获得程序被中断时的PC值,因为中断时会有保护现场的操作, 退出中断时恢复现场。所以你可在恢复现场的时候通过改变你的PC值来实现程序的跳转,当然还需要考虑这样做可能带来的其它问题。供参考。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lbing7
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 5

    发表于:2008-08-21 12:24:582楼 得分:0
    可以在退出中断前,先压入你要跟到的地方的地址

    然后,进行你要执行的程序后,再用返回指令

    这样可行不?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • shuiyan
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 3

    发表于:2008-08-21 14:24:353楼 得分:0
    1. 在串口中断最后退出前,设置一个全局变量,在定时器中断中监视这个变量,一旦被设置,就执行对应的函数。

        这个需要允许一定的延时。这个保险。

    2. 在中断最后手动做一次压栈,模仿进入中断时的现场保护动作,将PC指向你希望执行的地址。这样中断结束后,恢复现场(出栈)就会执行你希望的程序。

        这个需要严格细致考虑程序指向,尤其是进入中断时的现场如何处理?小心程序跑飞。
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved