我刚刚接触调用外部函数,不是太懂,手头又没有这方面系统讲解的资料,我的一个工程中包含了三个文件,分别为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);
}