带指针的外部函数调用有问题,帮我诊断下(附简化程序) <br />带指针的外部函数调用有问题,帮我诊断下(附简化程序) <br /><br />文件1.c <br />extern uint8 **;<br />extern uint8 Symbol;<br /><br />extern void WriteScreen(uint8 *DisplayData); 这个函数<br /><br /><br /> /*<br /> **********************************************************<br /> * 名称:TaskDISPLAYLCD()<br /> * 功能:测试flash的读 2007-3-10<br /> * 入口参数:pdata 任务初始化参数<br /> * 出口参数:无<br /> **********************************************************<br /> */<br /> void TaskDISPLAY(void *pdata)<br /> {<br /> pdata = pdata;<br /> <br /> initLCDM();<br /> while(1)<br /> {<br /> IO0CLR = BEEP;<br /> OSTimeDly(OS_TICKS_PER_SEC / 5);<br /> IO0SET = BEEP;<br /> <br /> OSTimeDly(OS_TICKS_PER_SEC / 5);<br /> WriteScreen( **); delayms(500); 这个函数出错<br /> <br /> }<br />}<br /><br />文件2.c<br />void WriteScreen(uint8 *DisplayData);<br /><br /><br />//-----------------------------------<br />// dispaly data (128x64)<br />//-----------------------------------<br />uint8 **[]={<br />0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,<br />0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,<br />0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,。。。。}<br /><br /><br />//-----------------------------------<br />// Write a Screen<br />//-----------------------------------<br />void WriteScreen(uint8 *DisplayData) // DisplayData should be 164x64/8 = 1312byte<br />{<br /> uint8 TempData;<br /> uint8 i, j;<br /> for(i=0;i<8;i++)<br /> {<br /> SdCmd(0xb0 | i); // select page 0~7<br /> SdCmd(0x10); // start form column 4<br /> SdCmd(0x04); // (2byte command)<br /> for(j=0;j<128;j++)<br /> {<br /> TempData=(*(DisplayData+(i*128)+j));<br /> SdData(TempData);<br /> }<br /> }<br />}<br /><br />在文件1.c中把<br />extern void WriteScreen(uint8 *DisplayData); 屏蔽后没错,但有警告<br />不明白为什么声明外部函数会出错?<br />请高手指点迷津谢谢! <br /><br /><br /><br /><br /> <br /> <br /><br />文件1.c <br />extern uint8 **;<br />extern uint8 Symbol;<br /><br />extern void WriteScreen(uint8 *DisplayData); 这个函数<br /><br /><br /> /*<br /> **********************************************************<br /> * 名称:TaskDISPLAYLCD()<br /> * 功能:测试flash的读 2007-3-10<br /> * 入口参数:pdata 任务初始化参数<br /> * 出口参数:无<br /> **********************************************************<br /> */<br /> void TaskDISPLAY(void *pdata)<br /> {<br /> pdata = pdata;<br /> <br /> initLCDM();<br /> while(1)<br /> {<br /> IO0CLR = BEEP;<br /> OSTimeDly(OS_TICKS_PER_SEC / 5);<br /> IO0SET = BEEP;<br /> <br /> OSTimeDly(OS_TICKS_PER_SEC / 5);<br /> WriteScreen( **); delayms(500); 这个函数出错<br /> <br /> }<br />}<br /><br />文件2.c<br />void WriteScreen(uint8 *DisplayData);<br /><br /><br />//-----------------------------------<br />// dispaly data (128x64)<br />//-----------------------------------<br />uint8 **[]={<br />0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,<br />0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,<br />0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,。。。。}<br /><br /><br />//-----------------------------------<br />// Write a Screen<br />//-----------------------------------<br />void WriteScreen(uint8 *DisplayData) // DisplayData should be 164x64/8 = 1312byte<br />{<br /> uint8 TempData;<br /> uint8 i, j;<br /> for(i=0;i<8;i++)<br /> {<br /> SdCmd(0xb0 | i); // select page 0~7<br /> SdCmd(0x10); // start form column 4<br /> SdCmd(0x04); // (2byte command)<br /> for(j=0;j<128;j++)<br /> {<br /> TempData=(*(DisplayData+(i*128)+j));<br /> SdData(TempData);<br /> }<br /> }<br />}<br /><br />在文件1.c中把<br />extern void WriteScreen(uint8 *DisplayData); 屏蔽后没错,但有警告<br />不明白为什么声明外部函数会出错?<br />请高手指点迷津谢谢! <br /><br /><br /><br /><br /> <br /> <br /> |
|