单片机 我想问,中断服务函数可以写在其他c文件中吗?如果可以,会起作用吗? 如果不行,只能写mai
单片机我想问,中断服务函数可以写在其他c文件中吗?如果可以,会起作用吗?如果不行,只能写main.c中的话,中断程序又涉及到其他c文件的变量,如何处理,好乱啊。。头大...
单片机 我想问,中断服务函数可以写在其他c文件中吗?如果可以,会起作用吗? 如果不行,只能写main.c中的话,中断程序又涉及到其他c文件的变量,如何处理,好乱啊。。头大
展开
3个回答
展开全部
首先可以肯定,中断服务函数可以写在其他文件中,并不一定要放在main.c中。
中断服务函数如果有特定的关键字修饰,比如keil c51用interrupt,不仅可以放在任意文件中,甚至可以用static 把中断函数定义成局部的函数都没问题。
其他的,一般需要自己定义入口调用,比如某系统的定时中断入口放在0x0008地址,则在0x0008地址放一条长跳转指令,或者直接把函数的地址放在0x0008地址,这个根据系统不同,可能有不同的要求。
另外,有的c把引导程序会有一个默认的中断服务地址表,用户只需要根据系统的要求,按照一定的格式、名称定义好中断服务程序,系统就会自动调用。
中断服务函数如果有特定的关键字修饰,比如keil c51用interrupt,不仅可以放在任意文件中,甚至可以用static 把中断函数定义成局部的函数都没问题。
其他的,一般需要自己定义入口调用,比如某系统的定时中断入口放在0x0008地址,则在0x0008地址放一条长跳转指令,或者直接把函数的地址放在0x0008地址,这个根据系统不同,可能有不同的要求。
另外,有的c把引导程序会有一个默认的中断服务地址表,用户只需要根据系统的要求,按照一定的格式、名称定义好中断服务程序,系统就会自动调用。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询