写单片机程序,中断是免不了的。我比较喜欢用C写单片机程序,简单而且可读性高,当然程序效率没有汇编的高。目前写过51单片机跟AVR单片机的C程序,最近在看MSP430的书。用C写不同的单片机程序其实都是大同小异,因此能对不熟悉的单片机也能很快上手写程序。不过中断函数的写法,各个编译器往往都会有些差别。

最早写的C程序是51单片机的,用的编译器自然是大名鼎鼎的keil c了。Keil的功能还是非常强劲的,不仅能编译,还有软件仿真调试与硬件调试的功能。由于条件简陋,没用过什么仿真器,一直都是靠软件仿真调试程序的。Keil 中的中断函数一般格式如下:本文引用地址:http://www.eepw.com.cn/article/201611/316268.htm

void 函数名() interrupt n using n

{

…….

}

其中函数名可以任意取,关键字interrupt用来指明这是一个中断服务函数,后面的n表示中断号,关键字using加后面的n表示使用哪一组寄存器。

后然接触到AVR的单片机,该单片机开发环境一般用ICC或者是GCC。由于ICC是商用软件,而GCC是免费的,因此我一般用GCC来写AVR的C程序。现在版本的GCC for AVR有了一些改进,对于中断函数支持两种关键字ISR与SIGNAL,其格式如下:

ISR(vect)

{

………

}

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应该出来的比较早,所以才会采用这种方式。

keil中断函数的写法_中断函数写法的比较相关推荐

  1. excel求方差和标准差的函数_Excel标准差_计算函数Stdev和StdevP的使用方法

    Excel标准差_计算函数Stdev和StdevP的使用方法 Excel标准差核算共有六个函数,它们分别用于核算样本标准差和整体标准差,其间一些函数只能核算数值,另一些函数除能核算数值外还能核算文本和 ...

  2. 子程序与中断程序的异同_中断是什么意思?和子程序有什么区别?

    展开全部 中断程序是在中断事件发生时调用,程序也不知道什62616964757a686964616fe59b9ee7ad9431333365643536么时候有中断事件发生.子程序是在需要的时候调用, ...

  3. 箭头函数写法_箭头函数

    1.箭头函数介绍 //ES6 let fn=v=>v; console.log(fn("好酷的箭头函数!"));//好酷的箭头函数! //ES5 let fn=functio ...

  4. mysql函数 动态语句_自定义函数动态执行SQL语句

    Oracle 动态SQL有两种写法:用 DBMS_SQL 或 execute immediate,建议使用后者. DDL 和 DML Sql代码 收藏代码 /*** DDL ***/ begin EX ...

  5. 流程图函数’怎么画_原来函数可以这么美!

    01 前言 Desmos,中文名:图形计算器,它具有快速强大的数学引擎,涵盖微积分.数理统计.分析学等多个数学分支,可立刻绘制出任何公式的图形,从单一的线条到复杂的傅立叶级数,轻松直观. 网友戏称它为 ...

  6. c++max函数怎么用_比函数还强大的Excel分列技巧,你知道怎么用吗

    之前我们在进行数据处理的时候,或多或少的都提到过数据分列的用法,今天着重之前给大家分享的各种知识中,或多或少的都提到过分列的使用方法,今天针对分列的技巧,详细的给大家介绍下. 分列可以实现的功能很多, ...

  7. 函数模板案例_利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试

    案例描述: 利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试 #include <iostream& ...

  8. c语言string函数的用法_同一个函数的五六个版本,C++string insert函数详解

    前言 string 类的成员函数有很多,同一个名字的函数也常会有五六个重载的版本.篇幅所限,不能将这些原型一一列出并加以解释.这里仅对insert函数做以介绍,并直接给出应用的例子,通过例子,读者可以 ...

  9. 阿克曼函数java代码_阿克曼函数

    Tcl,67个字节 proc tcl::mathfunc::A m\ n {expr {$m?A($m-1,$n?A($m,$n-1):1):$n+1}} Tcl,77字节 proc A m\ n { ...

  10. 二元函数泰勒公式例题_二元函数泰勒公式.pdf

    §9.9 二元函数泰勒公式 一.问题的提出 一元函数的泰勒公式: f (x ) = f (x ) + f ¢(x )(x - x ) 0 0 0 f ¢¢(x ) 2 f ( n ) (x ) n 0 ...

最新文章

  1. ASM丢失disk header导致ORA-15032、ORA-15040、ORA-15042 Diskgroup无法mount
  2. 基于centos6的mysql5.7.13主从部署(一)
  3. Android中windowTranslucentStatus与windowTranslucentNavigation的一些设置(转)
  4. 求过去9天的相同时刻的平均值的sql(MYSQL)语句(去掉最大值,最小值)
  5. 自作的WM文件浏览器
  6. 从编译原理看一个解释器的实现
  7. 15个Android通用流行框架大全
  8. c语言位运算符读音,C语言六种位运算符
  9. Docker的简单使用
  10. 【BOI2007】【BZOJ1176】Mokia
  11. border-radius 移动之伤
  12. 使用 Java 操作 Kubernetes API
  13. iRedMail批量用户添加命令
  14. Python识别图片中数字/数值的方法笔记
  15. 一种用几何解nonlinear ICA的方法
  16. 关于tc作用在入口(ingress)和出口(egress)效果的调研
  17. 基于simulink的风力机房温度控制系统仿真
  18. 电影下载的TS TC版
  19. 岁月温柔-18 妈妈在市ICU第8天
  20. 亿美软通 短信接口整合(JAVA)

热门文章

  1. steam使用技巧2
  2. 文件查找工具locatfind
  3. 在Windows Server 2012中搭建WEB服务器,附ASP配置方法
  4. 自定义点击弹出设置百度商桥
  5. Java 语言被很多人抱怨语法繁琐、开发效率低、体系繁杂而笨重,为什么还有这么强的生命力,尤其是在企_-Chaz-_新浪博客
  6. 【贪玩巴斯】数字图像处理基础课堂笔记(二)——Matlab基础「下」与 Matlab编程基础 2021-09-26
  7. 需求分析——系统建模方法
  8. excel vba 数据分析
  9. 用matlab求得矩阵的最大特征值
  10. 计算机编程的双引号怎么打,计算机双引号怎么打出来