本帖最后由 renjun_EMbest 于 2013-12-29 00:27 编辑
前言:
在学习CC2540芯片的时候,觉得某些开发板提供的例程不好
直接移位操作,就是所谓的Hard-Code,完全没有代码风格可言。
另外,写中断函数的时候,IAR的废话太多,比如要写T1的中断ISR
必须这样:
#pragma vector = T1_VECTOR
__interrupt void TimerISR(void)
{
// 这里是你的代码
}
很蛋疼,所以花了一些时间,为IAR增加两个功能,简化编程
功能介绍:
1)直接使用结构体定义来操作某个位
比如要置位IEN1寄存器的T1IE位,直接这么写就ok
S_IEN1.T1IE = 1;
在原有寄存器名字的基础上增加前缀S_,就是结构体类型的寄存器定义
当你输完寄存器名字后,按下<.>符号,IAR会为你自动提示位名字,非常方便
2)简化中断函数的声明方式
原有的方式,大家都知道,反人类,就不多说了,下面是更简便的方式
比如,要写T1的中断函数
ISR(T1, Timer1)
其中,第一个参数是要定义中断的模块名(请查看头文件中的定义),第二个参数是你自己的中断函数名
就这么多,好用吧
使用方法:
将修改后的头文件复制到C:Program FilesIAR SystemsEmbedded Workbench 6.48051inc目录下
直接覆盖掉IAR安装目录下的默认头文件
注:如果您不放心,请先将默认头文件重命名,然后再复制
^_^ Enjoy Yourself ^_^
附件:
CC2540.zip
(7.79 KB, 下载次数: 42)
2013-12-29 00:23 上传
点击文件名下载附件
CC2540自定义头文件和说明文档
------------------------------------------------------------------------
PS: 关于原理性的说明,后面我会专门开个帖子介绍
如果在使用中有任何疑问,欢迎讨论
QQ: 819280802
Email: xuesong5825718@gmail.com
Cedar@Wuhan
一周热门 更多>