打印

conflicting declarations for variable "DisplayData"

[复制链接]
973|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yinxiangh|  楼主 | 2021-5-5 16:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

求知道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! **********

使用特权

评论回复
沙发
tian111| | 2021-5-5 16:46 | 只看该作者
DisplayData 这个函数有声明吗? 请问

使用特权

评论回复
板凳
yinxiangh|  楼主 | 2021-5-5 17:19 | 只看该作者
本帖最后由 yinxiangh 于 2021-5-5 17:22 编辑

还是搞不明白

使用特权

评论回复
地板
zwll| | 2021-5-5 17:22 | 只看该作者
有啊,第三行不就是嗎

使用特权

评论回复
评论
wooda 2021-5-6 12:15 回复TA
第三行是吗? 
5
yinxiangh|  楼主 | 2021-5-5 17:23 | 只看该作者
为什么不行呢,求指导哪里错了

使用特权

评论回复
6
tian111| | 2021-5-5 17:42 | 只看该作者
__CONFIG(0x1832); —— 尽可能往前放;

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

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

void main()
{ ... }

使用特权

评论回复
7
yinxiangh|  楼主 | 2021-5-5 17:44 | 只看该作者

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

使用特权

评论回复
8
tian111| | 2021-5-5 17:46 | 只看该作者
就是函数调用先后的关系??
更多操作

使用特权

评论回复
9
yinxiangh|  楼主 | 2021-5-5 17:48 | 只看该作者
哦,那我就知道怎么回事了,多谢大家

使用特权

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

本版积分规则

723

主题

7134

帖子

2

粉丝