liuliangdt
liuliangdt
级别: 家园常客
精华主题: 0
发帖数量: 443 个
工控威望: 682 点
下载积分: 66148 分
在线时间: 989(小时)
注册时间: 2010-09-05
最后登录: 2025-01-15
查看liuliangdt的 主题 / 回贴
楼主  发表于: 2014-03-04 23:02
小哥是个单片机业余爱好者,接触单片机有几年了。但很汗颜,水平一直还在入门口徘徊。本来想弄一个类似于多站通信的网络结构程序玩。写相互通信就的地方卡住了,再也写不下去。现在跪求坛友帮忙,因为写不下去已经几个月没碰单片机了。太恨了···
介绍一下通讯方案。一串信息帧有5个字节组成,主站发出一串信息帧后由对于的从站响应。因为从站要快速响应所以就设计在中断程序里回应(回复)。问题就出在这回应的子程序。同一个子程序,在主程序里顺序执行的时候和其它站是正常通讯。但要快速回应还得在中断里执行才行。从中断程序里发出通信信息都乱了,接收方收不到正确的信息。我已经试过了我想到可能性,但都不对。希望坛友们帮忙找出错误。在查错时最好要有两块单片机硬件联机,然后在它们RS-485信号处连到电脑的串口助手里看那些错误的字节。
如有没讲请清楚的地方待补充。
描述:解压文件
附件: 测试字符串通讯0#主机通讯.rar (23 K) 下载次数:28
网站提示: 请不要用迅雷下载附件,容易出错
shi2999
不管学什么,兴趣是最好的老师,能赚钱是最强劲的动力
级别: 网络英雄

精华主题: 0
发帖数量: 2680 个
工控威望: 7394 点
下载积分: 3002 分
在线时间: 606(小时)
注册时间: 2010-12-26
最后登录: 2023-05-29
查看shi2999的 主题 / 回贴
1楼  发表于: 2014-03-07 21:46
能做到,进中断时,会把pc指针存进堆栈,在中断中修改相应堆栈位置的数值为那个函数的地址就行
如:     MOV SP, #(STACK-1)
              MOV (STACK), #HIGH(function1)
              MOV (STACK+1), #LOW(function1)
              MOV SP, #(STACK+1)
              RETI
    
楼主留言:
你和#supermax #是同事吗?他说是你的手下。
本帖最近评分记录:
  • 下载积分:+5(liuliangdt) 热心助人!
    shi2999
    不管学什么,兴趣是最好的老师,能赚钱是最强劲的动力
    级别: 网络英雄

    精华主题: 0
    发帖数量: 2680 个
    工控威望: 7394 点
    下载积分: 3002 分
    在线时间: 606(小时)
    注册时间: 2010-12-26
    最后登录: 2023-05-29
    查看shi2999的 主题 / 回贴
    2楼  发表于: 2014-03-07 22:40
    supermax 是不是我的同事不重要。
    shi2999
    不管学什么,兴趣是最好的老师,能赚钱是最强劲的动力
    级别: 网络英雄

    精华主题: 0
    发帖数量: 2680 个
    工控威望: 7394 点
    下载积分: 3002 分
    在线时间: 606(小时)
    注册时间: 2010-12-26
    最后登录: 2023-05-29
    查看shi2999的 主题 / 回贴
    3楼  发表于: 2014-03-07 22:42
    正常是可以的,,
    但GOTO,一般跳转,,不是太建议,
    但GOTO是一个非常直接的方法,,一定要检查清楚后,,再使用,