感谢7楼的详细解释,但是试过之后还是不行
大多数说是“Delay.c”文件没有加入工程,说明一下我的做法,不知道这样做是不是已经将“Delay.c”文件加入了工程:
1、在桌面上“新建文件夹”
2、将文件“test.c”、“Delay.c”、“Delay.h”拷贝到“新建文件夹”
3、在“新建文件夹”中新建工程“test”,生成文件“test.eww“
4、此时“新建文件夹”中包含有“test.eww“、“test.c”、“Delay.c”、“Delay.h”和一些其他的文件
不知道以上4步是不是已经将“Delay.c”文件加入了工程
“test.c”、“Delay.c”、“Delay.h”文件内容如下:
===========================================
“test.c”内容:
//程序功能:实现流水灯"流动"
//硬件电路:P2口接LED,低电平点亮
#include <msp430x16x.h> //包含头文件
#include "Delay.h" //包含自己的延时头文件
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗
P2SEL = 0; //设置P2口为I/O端口功能
P2DIR = 0xff; //设置P2口为输出状态;
while(1)
{
char j=0xFE,i;
for(i=0;i<8;i++)
{
P2OUT=j;
j=j<<1|1;
Delay(3000);
}
P2OUT=0xff;
Delay(3000);
}
}
==================
“Delay.h”内容:
#ifndef Delay_H
#define Delay_H
#include <msp430x16x.h>
extern void Delay(int n);
#endif
==================
“Delay.c”内容:
#include <msp430x16x.h>
#include "Delay.h"
void Delay(int n)
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<100;j++);
}
问题是编译时出现如下提示,无法通过编译:
Error[e46]: Undefined external "Delay" referred in test ( C:\Documents and Settings\Administrator\桌面\新建文件夹\Debug\Obj\test.r43 )
在“test.c”文件中加入#include "Delay.c" 语句即可通过编译,为什么必须要加入这条语句呢?????
|