中断函数写法的比较

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

与 SIGNAL(vect) { .. } 其中的 vect 就是中断向量名,根据不同的型号的 AVR 单片机的不同的中断 源都会有相对应的中断向量名,比如外部中断 0 对于 ISR 格式的中断向量名为 INT0_vect,对 SIGNAL 则为 SIG_INTERRUPT0。 最近在看 TI 的 MSP430 系列单片机的资料,看到该单片机采用 C430 写的中 断服务函数有点像前两种的综合,其格式如下: interrupt [vect] void 函数名(void) { . } 其中 vect 也是中断向量名,函数名可以任取。 比较这几种中断函数写法,本人更倾向于 AVR 的 GCC 的写法。首先对于中 断函数来说即不能有输入参数又没有返回值,没必要再给它加个 void 函数名 (void)的形式的函数。而且光看中断向量名一般都能知道是哪个中断源产生, 再写个中断函数名作解释似乎有点重复。对于 keil c 用中断向量号的形式来表 示中断源,感觉有点麻烦,记住中断源的中断号比记中断向量要难多了。不过 可能标准 51 的中断缘比较少,而且 keil 应该出来的比较早,所以才会采用这 种方式。 tips:感谢大家的阅读,本文由我司收集整编。仅供参阅!
中断函数写法的比较
写单片机程序,中断是免不了的。我比较喜欢用 C 写单片机程序,简单 而且可读性高,当然程序效率没有汇编的高。目前写过 51 单片机跟 AVR 单片 机的 C 程序,最近在看 MSP430 的书。用 C 写不同的单片机程序其实都是大同 小异,因此能对不熟悉的单片机也能很快上手写程序。不过中断函数的写法, 各个编译器往往都会有些差别。 最早写的 C 程序是 51 单片机的,用的编译器 自然是大名鼎鼎的 keil c 了。Keil 的功能还是非常强劲的,不仅能编译,还有 软件仿真调试与硬件调试的功能。由于条件简陋,没用过什么仿真器,一直都 是靠软件仿真调试程序的。Keil 中的中断函数一般格式如下: void 函数名() interrupt n using n { . } 其中函数名可以任意取,关键字 interrupt 用来指明这是一个中断服务函数, 后面的 n 表示中断号,关键字 using 加后面的 n 表示使用哪一组寄存器。 后然接触到 AVR 的单片机,该单片机开发环境一般用 ICC 或者是 GCC。 由于 ICC 是商用软件,而 GCC 是免费的,因此我一般用 GCC 来写 AVR 的 C 程序。现在版本的 GCC for AVR 有了一些改进,对于中断函数支持两种关键字 ISR 与 SIGNAL,其格式如下: ISR(vect) { }
ห้องสมุดไป่ตู้
相关文档
最新文档