下面报了一个警告,并且得到的结果不对 ,void Transition(uint8 *dat)这个函数我就是这样写的没有错误 但是为什么到void dis_led(uint8 *ddata)这个函数使用起来就有错误了呢,求大神们指导小弟一下 万分感谢!
单片机源程序如下:
void dis_led(uint8 *ddata)
{
uint8 i;
for(i=0;i<=7;i++)
{
P2=P2&0xe3|wei[ i];
P0=ddata[ i];
delay(3);
P0=0;
}
}
uint8 Ascall_Dispose(uint8 dat)
{
if(dat>=0x30&&dat<=0x39)
return duan_num[dat-48];
if(dat>=0x41&&dat<=0x5a)
return duan_big_letter[dat-65];
if(dat>=0x61&&dat<=0x7a)
return duan_small_letter[dat-97];
return 0x00;
}
void Transition(uint8 *dat)
{
uint8 i,i1;
static dis_buff[9];
static dis_step=0,point_place=0;
do
{
switch(dis_step)
{
case 0:
for(i=0;i<8;i++)
{
if(dat[ i]==0x2e)
{
point_place=i;
dis_step=1;
}
dis_buff[ i]=Ascall_Dispose(dat[ i]);
}
dis_step=2;
break;
case 1:
for(i=point_place;i<8;i++)
{
dis_buff[ i]=Ascall_Dispose(dat[i+1]);
}
dis_buff[point_place]=dis_buff[point_place]|0x80;
dis_step=2;
case 2:
dis_led(dis_buff); //[ i] //这个地方报警告 DIS_LED.C(81): warning C182: pointer to different objects
// for(i1=0;i1<8;i1++)
// {
// Dis_buff1[i1]=dis_buff[i1];
// }
dis_step=0;
}
}while(dis_step!=0);
}
void main()
{
strcpy(Dis_buff,"12345678");
while(1)
{
Transition(Dis_buff);
// dis_led();
}
}
|