IAR软件

-回复 -浏览
楼主 2018-06-26 18:48:04
举报 只看此人 收藏本贴 楼主

1.     IAR头文件添加:#include"ioavr.h"头文件

因为该文件包含所有单片机的头文件。

 

2.      如何对一个大项目进行模块化编程

1).一个模块设立一个.c.h文件,头文件.h是对于该模块接口的声明,用于其他模块引用.c中的函数,只有在.h中声明了其他外部模块才可以引用

//==================定义或外部引用==========================

#ifdef   DEFINE_COLLECT

#define   EXTERN_COLLECT        //此时EXTERN_COLLECT被设置成空

#else

#define  EXTERN_COLLECT               extern    

#endif

//========================================================

举例:EXTERN_COLLECT COLLECT_CTR   Collect;

     EXTERN_COLLECT  void ADSampling(void);

*当编译器处理本模块.c文件时,变成:   COLLECT_CTR  Collect;                      voidADSampling(void);

编译器会把这些全局变量分配到内存中。

*当编译器处理其他.c文件时,变成:

extern  COLLECT_CTR   Collect;

extern  voidADSampling(void);

这时编译器不分配内存,而任何.c文件都可以使用这些变量

 2)防止自己在本模块.C程序中重复定义        

        #ifndef     _FILTER_H_

        #define     _FILTER_H_

        头文件内容

            ......

       #endif

*程序在编译头文件时会判断有没有定义filter.h文件,第二次判断时则filter.h已经定义,不会编译内容部分。


3.永远不要在.h中定义变量


4.IAR软件声明的全局变量只会分配一次内存(iar软件有优化功能)。

 







我要推荐
转发到