标题: 求助各位大神,帮忙看下IAP15W4K58S4单片机最小系统程序出现下列错误的原因是什么? [打印本页]

作者: maple.lee    时间: 2021-11-18 15:50
标题: 求助各位大神,帮忙看下IAP15W4K58S4单片机最小系统程序出现下列错误的原因是什么?
程序要实现的功能如下:

//首先,把二维数组Color_Library中的[9][0~7]的数据,赋值给一维数据WsDat[0~103],再调用显示函数Display_Color(WsDat[c]);发送到对应的LED灯珠上。
//然后,把二维数组Color_Library中的[10][0~7]的数据,重新赋值给一维数据WsDat[0~103],再调用显示函数Display_Color(WsDat[c]);发送到对应的LED灯珠上。
C51程序如下所示,我试着改了三种不同的书写方式,只有第三种才能正确运行。请各位大神帮忙看下,为什么会出现下述情况!


//第一种写法,如下所示;在IAP15W4K58S4最小系统中运行出错。LED灯珠无显示。
void WaterLampToColor28()     
{
    unsigned char a,b,c,d;
    for(d=0;d<2;d++)        
    {   
        for(a=0;a<13,a++)                  
        {        
            for(b=0;b<8;b++)
            {            
                WsDat[b+a*8]=Color_Library[d+9][b ];            
            }
        }
        
        for(c=0;c<LED_num;c++)         
        {        
            Display_Color(WsDat[c]);  
        }  
        Delay_Xms(7);            
    }
}

//如下所示,第二种书写方式,在IAP15W4K58S4最小系统上运行仍然错误。LED灯珠无显示。

void WaterLampToColor28()     
{
    unsigned char a,b,c;
    for(a=0;a<13;a++)
    {        
        for(b=0;b<8;b++)
        {            
            WsDat[b+a*8]=Color_Library[9][b ];            
        }
    }   
    for(c=0;c<LED_num;c++)         
    {        
        Display_Color(WsDat[c]);  
    }  
    Delay_Xms(7);            
   
    for(a=0;a<13;a++)
    {        
        for(b=0;b<8;b++)
        {            
            WsDat[b+a*8]=Color_Library[10][b ];        
        }
    }
   
    for(c=0;c<LED_num;c++)         
    {        
        Display_Color(WsDat[c]);  
    }  
    Delay_Xms(7);


//第三种书写方式,在IAP15W4K56S4最小系统上运行正常。


void WaterLampToColor28()     
{
    unsigned char a,b,c,d,e,f;
    for(a=0;a<13;a++)
    {        
        for(b=0;b<8;b++)
        {            
            WsDat[b+a*8]=Color_Library[9][b ];        
        }
    }
   
    for(c=0;c<LED_num;c++)         
    {        
        Display_Color(WsDat[c]);  
    }  
    Delay_Xms(7);   
   
   
    for(d=0;d<13;d++)
    {        
        for(e=0;e<8;e++)
        {            
            WsDat[e+d*8]=Color_Library[10][e];        
        }
    }
   
    for(f=0;f<LED_num;f++)         
    {        
        Display_Color(WsDat[f]);  
    }  
    Delay_Xms(7);   
}





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1