为IAR 8051增加结构体操作--简化ISR编写
前言:在学习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 Files\IAR Systems\Embedded Workbench 6.4\8051\inc目录下
直接覆盖掉IAR安装目录下的默认头文件
注:如果您不放心,请先将默认头文件重命名,然后再复制
^_^ Enjoy Yourself ^_^
附件:
------------------------------------------------------------------------
PS: 关于原理性的说明,后面我会专门开个帖子介绍
如果在使用中有任何疑问,欢迎讨论
QQ: 819280802
Email: xuesong5825718@gmail.com
Cedar@Wuhan 学习中,谢谢分享! 学习类,IAR AVR 应该怎么设置,我试着改成644pa的串口,怎么改都是错的 IAR 8051的教程吗? mark..........
页:
[1]