当前位置: 代码迷 >> 单片机 >> 多文件工程中,怎样调用外部函数?解决办法
  详细解决方案

多文件工程中,怎样调用外部函数?解决办法

热度:96   发布时间:2016-04-28 16:16:47.0
多文件工程中,怎样调用外部函数?
我刚刚接触调用外部函数,不是太懂,手头又没有这方面系统讲解的资料,我的一个工程中包含了三个文件,分别为Main.c,           RTC.c   ,           Temper.c   ,我要在Main   中的mian()函数中调用后两个文件的函数。该如何操作?

我自己试着编的程序,如下,调试发现五个WARING,         2个ERROR,意思是重复定义了两个外部函数。明白人帮我看看是   怎么回事吧,看看我的外部变量和函数声明的对吗?
//main.c
#include   <C8051F020.h>
#include "RTC.c "
#include   "Temper.c "

#include   <math.h>
#include   <intrins.h>
#include   <absacc.h>

void   Oscillator_Init()
{
        int   i   =   0;
        OSCXCN         =   0x67;
        for   (i   =   0;   i   <   3000;   i++){WDTCN=0xa5;};     //   Wait   1ms   for   initialization
        while   ((OSCXCN   &   0x80)   ==   0);
        OSCICN         =   0x88;
}

void   main(void)
{
  extern   uchar   second;
  extern   uchar   ptTemper[4],ptTemp_Average[4];       /*声明外部变量*/
  extern   void     ReadRTC();
  extern   void   WriteRTC(uchar   Year,uchar   Month,uchar   Day,uchar   Hour,uchar   Minute,uchar   Second);
  extern   void   Delay1s();
  extern   Read_Temperature(uchar   *ptTemp,uchar   n);            
  extern   Temp_Con(uchar   *ptTemp_Avr);                                                 /*声明外部函数*/
  EA=0;
  WDTCN=0xde;
  WDTCN=0xad;//禁止看门狗
  Oscillator_Init();

//I/O   初始化
  P1MODE=0xff;                    
  PRT1CF=0x00;  

P1=0xe5;

  PRT2CF   &=0x7f;                    
        P2MODE   |=0x0c;                    
        P2|=0x0c;                    

          WriteRTC(0,0,0,0,0,0);               //Initialize   RTC
          Delay1s();

    do{

                    ReadRTC();
                  if   (second==8)
                {
                        Read_Temperature(ptTemper,1);          

                      Read_Temperature(ptTemper,2);      

                      Temp_Con(ptTemp_Average);
                }

          }                   while   (1);

}
  相关解决方案