打印
[PIC®/AVR®/dsPIC®产品]

編譯不通過,並提示 conflicting declarations for variable "DisplayData"

[复制链接]
3864|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
求知道pic16f877a編譯程序錯在哪裡
程序如下:
#include<pic.h>
void delay();
void Display(unsigned int iData);
__CONFIG(0x1832);
void main()
{

  unsigned int  iData=1234;
  TRISC=0X00;
  TRISD=0X00;
  PORTD=0X00;
  PORTC=0X00;
  while(1)
  {
      DisplayData( iData);
  }
}


void DisplayData( unsigned int iData)
{
   const char Seg7TableN[]={0x3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F};
   int i=0,j=0,k=0,Numstr[]={0,0,0,0,0};
   Numstr[1]=(iData)/1000;
   Numstr[2]=(iData%1000)/100;
   Numstr[3]=(iData%100)/10;
   Numstr[4]=iData%10;
   for(i=0;i<10;i++)
   {  
      PORTD=k=0X01;
      for(j=1;j<=4;j++)
      {
        PORTD=k;
        PORTC=Seg7TableN[Numstr[j]];
        delay();
        k=k<<1;
      }
  }
}           
void delay()
{
int a;
for(a=0;a<500;a++);
}
該程序是用數碼管顯示一個4位數字,可編譯總還是通不過并提示如下:
Build C:\test\seg_4\seg_4 for device 16F877AUsing driver C:\Program Files\HI-TECH Software\PICC\9.80\bin\picc.exeMake: The target "C:\test\seg_4\seg_4.p1" is out of date.Executing: "C:\Program Files\HI-TECH Software\PICC\9.80\bin\picc.exe" --pass1 C:\test\seg_4\seg_4.c -q --chip=16F877A -P --runtime=default --opt=default -D__DEBUG=1 -g --asmlist "--errformat=Error   [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s" Warning [361] C:\test\seg_4\seg_4.c; 16.1 function declared implicit intError   [984] C:\test\seg_4\seg_4.c; 22.1 type redeclaredError   [1098] C:\test\seg_4\seg_4.c; 22.1 conflicting declarations for variable "DisplayData" (C:\test\seg_4\seg_4.c:16)********** Build failed! **********
求大神們知道俺錯在哪裡,如何修正才能那個通過












沙发
hbzhh2008| | 2015-7-15 18:59 | 只看该作者
DisplayData 这个函数有声明吗? 请问

使用特权

评论回复
板凳
菜鸟求学求指导|  楼主 | 2015-7-16 08:10 | 只看该作者
有啊,第三行不就是嗎

使用特权

评论回复
地板
菜鸟求学求指导|  楼主 | 2015-7-20 08:14 | 只看该作者
为什么不行呢,求指导哪里错了

使用特权

评论回复
5
Jack315| | 2015-7-20 09:29 | 只看该作者
__CONFIG(0x1832); —— 尽可能往前放;

试试这个次序:
void delay()
{ ... }

void DisplayData( unsigned int iData)
{ ... }

void main()
{ ... }

使用特权

评论回复
6
菜鸟求学求指导|  楼主 | 2015-7-22 15:31 | 只看该作者
Jack315 发表于 2015-7-20 09:29
__CONFIG(0x1832); —— 尽可能往前放;

试试这个次序:

谢谢,我后来试了下,的确是按照你这个顺序就可以编译成功

使用特权

评论回复
7
渔夫的烟斗| | 2017-7-31 10:21 | 只看该作者
就是函数调用先后的关系??

使用特权

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

本版积分规则

5

主题

73

帖子

2

粉丝