STC单片机外部中断里面还能串口中断吗?我的外部中断里面的程序15秒循环才返回,这时15秒还没有完会 20
外部中断里面还能串口中断吗?我的外部中断里面的程序15秒循环才返回,这时15秒还没有完会跳到串口中断吗我的没有反映,串口有数据他还在外部中断里面,没有放下外部中断先处理串...
外部中断里面还能串口中断吗?我的外部中断里面的程序15秒循环才返回,这时15秒还没有完会跳到串口中断吗
我的没有反映,串口有数据他还在外部中断里面,没有放下外部中断先处理串口 展开
我的没有反映,串口有数据他还在外部中断里面,没有放下外部中断先处理串口 展开
1个回答
展开全部
51单片机好像有两个级别的中断优先级,可以中断嵌套一次,但前提时优先级要高,不过有些51芯片可能优先级更多,这我不清楚。。。印象里51是不存在复位中断标志位的操作(其他很多芯片可以复位中断标志,这样无论其他中断高低都可以引起中断,而且你能读到中断地址,这样理论可以无限嵌套,只要你把中断地址保存入栈即可,51印象里PC指针就不能读),51你必须靠iret指令来退出中断,所以嵌套很有限,老的只有2级嵌套,优先级貌似也不能设置,外部的中断优先级最高,串口中断优先级低无法产生。。。
中断函数切记内容要少,如果实时要求不高的话,直接就只是置位一个标志即可,由主循环查看标志执行。。。15秒肯定不行。。。代码可以写的更合理些,避免这种代码长时间在中断里运行的情况,任何芯片程序都是如此。。。毕竟只是单片机功能弱,单线程你还想有多高实时性。。。
外部中断更多的是提醒功能,高实时性的要求场合装实时系统是必须的,来划分多任务并行才行,此时中断就更应该短,他只用来置位一些系统对象(如信号量消息等),由系统调度让优先级更高的线程任务去执行,既不耽误中断,实时性也高。。。
中断函数切记内容要少,如果实时要求不高的话,直接就只是置位一个标志即可,由主循环查看标志执行。。。15秒肯定不行。。。代码可以写的更合理些,避免这种代码长时间在中断里运行的情况,任何芯片程序都是如此。。。毕竟只是单片机功能弱,单线程你还想有多高实时性。。。
外部中断更多的是提醒功能,高实时性的要求场合装实时系统是必须的,来划分多任务并行才行,此时中断就更应该短,他只用来置位一些系统对象(如信号量消息等),由系统调度让优先级更高的线程任务去执行,既不耽误中断,实时性也高。。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询