发新帖我要提问
12
返回列表
打印

为什么还要#include "Delay.c?

[复制链接]
楼主: doublers
手机看帖
扫描二维码
随时随地手机跟帖
21
版主说得很对,你文件写的不规范,很容易出错的。

使用特权

评论回复
22
doublers|  楼主 | 2013-8-8 10:52 | 只看该作者
感谢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" 语句即可通过编译,为什么必须要加入这条语句呢?????



使用特权

评论回复
23
chenzuoxiang| | 2013-8-10 17:39 | 只看该作者
模块  "delay.c"  内容   #include “  delay.h" 后面加一句  void  delay(int n);

模块内函数要先申明。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则