标题: 单片机中断优先级后面的using2是必要的吗? [打印本页]

作者: 3253087609ydrq    时间: 2024-9-10 22:33
标题: 单片机中断优先级后面的using2是必要的吗?
下面是一个数码管动态显示0-999数字的程序,在程序的第62行“interrupt 1”后面跟着个“using 2”,这个“using 2”是必要的吗,不写会怎样

Screenshot_2024-09-10-22-12-59-88_9e8df3d0c7c1f50248b6ee043a653d26.jpg (114.78 KB, 下载次数: 6)

Screenshot_2024-09-10-22-12-59-88_9e8df3d0c7c1f50248b6ee043a653d26.jpg

Screenshot_2024-09-10-22-13-13-67_9e8df3d0c7c1f50248b6ee043a653d26.jpg (111.43 KB, 下载次数: 3)

Screenshot_2024-09-10-22-13-13-67_9e8df3d0c7c1f50248b6ee043a653d26.jpg

作者: 624353765    时间: 2024-9-11 07:20
没必要,默认using0
作者: csmyldl    时间: 2024-9-11 08:27
如果只使用了一个中断,可以不要,但程序中使用了多个中断时,为了防止中断保护的寄存器R0 R1数据误覆盖,最好加上各中断的工作器选择,编程者如果能确认保护数据不会被覆盖,可省掉using
作者: wpppmlah    时间: 2024-9-11 08:27
建议不要使用 using x;  让编译器自己去处理,所以这个 using  2 可以不用写,,(意思是指定此函数使用R0-R7通用寄存器的 R2,我是这么理解的).
作者: csmyldl    时间: 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的数据不被覆盖,若中断多了,就需要选择使用哪一组工作寄存器。
作者: newlined    时间: 2024-9-11 13:36
csmyldl 发表于 2024-9-11 08:55
你这理解错了,单片机把内存地址的00H至1FH的32个存储单元分为4组,称之为工作寄存器,每一组分别对应R0 ...

我也觉得您说的对,假设有4个以上的中断,就要好好考虑一下了。
作者: xiaobendan001    时间: 2024-9-11 14:27
不太懂,但是我试过,结果变的不稳定
作者: Y_G_G    时间: 2024-9-11 18:29
不要写using,多少个中断都不要用
using是优化的,不是必需的,你不用没多大事,用了反而容易出错




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1