Wavemcu.com - 健波硬件工作室

匿名投稿 投稿指南 RSS订阅 站长资讯通告:     2008年8月16日:新站点正在测试当中,如发现问题,请E-mail给站长!  [EasyWave  2008年8月16日]        
搜索: 您现在的位置: 健波硬件工作室 >> 编程器家园 >> ICCAVR编程 >> 正文

ICCAVR与Keil C的异同

2008-06-10 13:50:46 来源:本站原创 作者:EasyWave 点击:

核心提示:本文着重ICCAVR与KEIL的异同,其实只要你是熟悉KEIL的朋友,很容易转到ICCAVR的。

学习一种新东西,我个人认为应该是从两种不同的点和相同点来区别学习,这样可以很快的或者说很容易掌握一种新技术。Keil与ICCAR的区别见下:

1.头文件,也就是包含的库文件或者自定义的H文件,对于KEIL中定义的寄存器的H文件,如:REG51.H等和ICCAVR中定义的寄存器的H文件是不同的,如:IO8515V.H等,只需要替换下即可。

2.中断处理函数,大家都知道在KEIL中的中断去处理函数的关键字:interrupt以它来说明该函数为一个中断处理函数,而在ICCAVR中定义中断函数是采用#pragma interrupt_handler预处理命令在子程序前声明,具体见下,以TIMER中断为例:

Keil C的中断定义:void TIMER0_Interrupt(void)  interrupt 1

ICCAVR中断定义: #pragma interrupt_handler timer:5

 void timer(void)

{

                            你需要做的函数

}

3.对Keil的bit和sbit数据类型的处理,在ICCAVR中是不支持bit和sbit数据类型的。但是我们可以通过宏定义来解决这个ICCAVR位函数的操作的。具体见后面的实例。

4.初始化中断和TIMER时,相应的寄存器需要改成ICCAVR相应支持的寄存器即可。

5.对于标准的ANSI的C语言,一般是不需要改变的。

Keil

图一:Keil的TIMER中断处理函数

ICCAVR

图二:ICCAVR中断处理函数

Tags: 技术资料  
责任编辑:EasyWave
  • 调用插件
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】   
  • 上一篇文章:
  • 下一篇文章: 没有了
  • 相关文章列表
    姓 名: * Oicq:
    评 分: 1分 2分 3分 4分 5分
    评论内容:
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用健波硬件工作室服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  • 关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 帮助