您好、欢迎来到现金彩票网!
当前位置:彩之网 > 子程序 >

单片机C程序的中断函数调用子程序冲突问题

发布时间:2019-06-19 09:31 来源:未知 编辑:admin

  或者ARM的使用过程中,必会遇到使用片上中断资源的时候,中断单片机的灵魂和精髓所在,像定时/计数器一样有很重要的作用。设置中断的作用是能及时响应重要的程序响应,以提高MCU和MPU的对重要资源的响应速度。在响应中断的过程中,系统会自动保存断点(C语言编程中),等到中断响应结束之后,程序会再次回到断点处继续执行main函数。这就出现了问题:有可能在

  中调用的子函数和main函数中调用的子函数重复,比如,在main函数执行到display()显示函数的时候,发生了ESUART中断,这是程序需要保存现场和断点,将现在的main正在执行的一些资源压入堆栈。如果在

  ()函数中也调用display()函数的话,会导致中断中的函数执行不正常,即显示乱码或者不显示,在返回main函数时,也有可能导致之前压入堆栈的资源发生改变,导致main()显示异常,发生不可预料的结果。但是若main函数中没有执行display函数时发生中断,则中断函数中的display函数则能正常显示。

  解决这一问题的一个办法是复制一套需要调用的子函数,给这些子函数重新命名,包括子函数中调用的子函数。这样,主函数和中断函数调用的子函数就不会发生冲突,两边都可正常执行。

http://ibtlsports.com/zichengxu/81.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有