电子产业一站式赋能平台

PCB联盟网

搜索
楼主: xiang18
收起左侧

执行中断时又来了一次中断,中断里面的程序是不是继续执行?

[复制链接]

35

主题

892

帖子

1091

积分

三级会员

Rank: 3Rank: 3

积分
1091
发表于 2023-3-23 16:49:55 | 显示全部楼层
中断里如果过长(如果中断程序过长,这本身就应该避免的),那么其他同级中断或者低级中断只能等单片机出了高级的中断再进入中断了。传统的8051单片机具有6个中断,2级嵌套。默认情况下各逻辑优先级是相同的。算术优先级是int0,time0,int1,time1,串口
我们要理解好两个优先级的区别。算术优先级用于同时发生中断时谁先执行。逻辑优先级用于是否可以打断正在执行的中断。
比如默认情况下:外部中断0和定时器中断0,同时发生时,优先执行外部中断0,执行完后再执行定时器中断0;如果当单片机正在执行定时器中断,外部中断是不可以打断定时器中断的。
执行中断时又来了一次中断,中断里面的程序是不是继续执行?-1.jpg
回复 支持 反对

使用道具 举报

633

主题

1927

帖子

8108

积分

联盟顾问

Rank: 3Rank: 3

积分
8108
发表于 2023-3-23 16:50:02 | 显示全部楼层
看优先级,同等优先级比须等他做完这个中断处理程序
回复 支持 反对

使用道具 举报

633

主题

1927

帖子

8108

积分

联盟顾问

Rank: 3Rank: 3

积分
8108
发表于 2023-3-23 16:50:07 | 显示全部楼层
程序有错:
... ...
EA=1;
ET0=1;----允许定时器0中断
while(1);
}


void zhongduan() interrupt 0--外部中断0的程序
{
TH0=(65536-10)/256;
TL0=(65536-10)%256;
delay(10);
... ...
回复 支持 反对

使用道具 举报

35

主题

892

帖子

1091

积分

三级会员

Rank: 3Rank: 3

积分
1091
发表于 2023-3-23 16:51:05 | 显示全部楼层
楼主允许T0中断,却没有写T0的中断函数。


写了INT0的中断函数,却没有允许它中断。


逻辑混乱,那么,出现什么现象,都不奇怪。
回复 支持 反对

使用道具 举报

0

主题

829

帖子

622

积分

二级会员

Rank: 2

积分
622
发表于 2023-3-23 16:51:10 | 显示全部楼层
看中断优先级
回复 支持 反对

使用道具 举报

发表回复

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

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表