请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430FR2422 我正在调用位于第二个文件中的 main 中的函数。 main 中的函数调用为:
CONFIGRTC (1800);
funct.c 中的函数定义为:
void configRTC (unsigned int s) { unsigned int k、div = 0; 如果(s < 2) DIV = DIVB[0]; 如果(s >= 2048)则为其他值 div = Diva[3]; 否则{ 对于(k = 0;k < 3;k++){ 如果(s >(2 * Diva[k]) div =(k + 1); } } RTCMOD =(int)((float)(32768 / Diva[div])* s)- 1; RTCCTL = RTCSS_XT1CLK | RTCSR |(div + 4)<< 8; RTCCTL &=~RTCIFG; RTCCTL |= RTCIE; }
在 funct.h 中、我定义 Diva 和 divB:
unsigned int Diva[4]={16、64、256、1024}; unsigned int divB[4]={1、10、100、1000};
当我转到编译主程序时、我会遇到以下错误:
重新定义#10056符号"DIVA":首先在"./funct.obj"中定义;在"./main.obj" 中重新定义#10056符号"DIVB":首先在"./funct.obj"中定义;在"./main.obj"中重新定义
我不明白 main 为什么要重新定义这些函数、因为它们仅是函数的局部变量、并且不存在于 main 中。 我已经尝试在 main 中放置 extern、但没有结果? funct.h 同时包含在 main 和 funct.c 中 我可以在没有错误的情况下构建 funct.c、这样我就知道我的问题在 main 的某个位置??
谢谢