找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2015|回复: 7
收起左侧

单片机中断优先级后面的using2是必要的吗?

[复制链接]
ID:871721 发表于 2024-9-10 22:33 来自触屏版 | 显示全部楼层 |阅读模式
下面是一个数码管动态显示0-999数字的程序,在程序的第62行“interrupt 1”后面跟着个“using 2”,这个“using 2”是必要的吗,不写会怎样
Screenshot_2024-09-10-22-12-59-88_9e8df3d0c7c1f50248b6ee043a653d26.jpg
Screenshot_2024-09-10-22-13-13-67_9e8df3d0c7c1f50248b6ee043a653d26.jpg
回复

使用道具 举报

ID:526108 发表于 2024-9-11 07:20 | 显示全部楼层
没必要,默认using0
回复

使用道具 举报

ID:235200 发表于 2024-9-11 08:27 | 显示全部楼层
如果只使用了一个中断,可以不要,但程序中使用了多个中断时,为了防止中断保护的寄存器R0 R1数据误覆盖,最好加上各中断的工作器选择,编程者如果能确认保护数据不会被覆盖,可省掉using
回复

使用道具 举报

ID:68189 发表于 2024-9-11 08:27 | 显示全部楼层
建议不要使用 using x;  让编译器自己去处理,所以这个 using  2 可以不用写,,(意思是指定此函数使用R0-R7通用寄存器的 R2,我是这么理解的).
回复

使用道具 举报

ID:235200 发表于 2024-9-11 08:55 | 显示全部楼层
wpppmlah 发表于 2024-9-11 08:27
建议不要使用 using x;  让编译器自己去处理,所以这个 using  2 可以不用写,,(意思是指定此函数使用R0-R7通 ...

你这理解错了,单片机把内存地址的00H至1FH的32个存储单元分为4组,称之为工作寄存器,每一组分别对应R0至R7,用于中断时保护R0-R7的数据不被覆盖,若中断多了,就需要选择使用哪一组工作寄存器。
回复

使用道具 举报

ID:227818 发表于 2024-9-11 13:36 | 显示全部楼层
csmyldl 发表于 2024-9-11 08:55
你这理解错了,单片机把内存地址的00H至1FH的32个存储单元分为4组,称之为工作寄存器,每一组分别对应R0 ...

我也觉得您说的对,假设有4个以上的中断,就要好好考虑一下了。
回复

使用道具 举报

ID:1109793 发表于 2024-9-11 14:27 | 显示全部楼层
不太懂,但是我试过,结果变的不稳定
回复

使用道具 举报

ID:401564 发表于 2024-9-11 18:29 | 显示全部楼层
不要写using,多少个中断都不要用
using是优化的,不是必需的,你不用没多大事,用了反而容易出错
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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